move the library to ONF
Change-Id: I383437e2934ce04cc1a7dc332134f7308991776f
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..efac55c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+.idea
+.cache
+*.pyc
+*.log
+*.class
+*.egg-info/
+dist
+build
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..ae2a679
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=gerrit.opencord.org
+port=29418
+project=grpc-robot.git
+defaultremote=origin
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..46f6500
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,14 @@
+Copyright 2020-present Open Networking Foundation
+Original copyright 2020-present ADTRAN, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file
diff --git a/MAKEDOC b/MAKEDOC
new file mode 100755
index 0000000..8cb87de
--- /dev/null
+++ b/MAKEDOC
@@ -0,0 +1,49 @@
+#!/bin/bash
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+
+for version in $(curl -s https://pypi.org/pypi/device-management-interface/json | jq '.releases | keys' | jq '.[]'); do
+ version=${version//\"/}
+ filename=dmi_${version//\./\_}
+
+ if [ -d ./grpc_robot/services/dmi/"$filename" ]; then
+
+ python3 -m pip install -q device-management-interface=="$version"
+
+ python3 -m robot.libdoc -P . grpc_robot.Dmi docs/"$filename".html
+ python3 -m robot.libdoc -P . grpc_robot.Dmi docs/"$filename".xml
+ fi
+
+done
+
+for version in $(curl -s https://pypi.org/pypi/voltha-protos/json | jq '.releases | keys' | jq '.[]'); do
+ version=${version//\"/}
+ filename=voltha_${version//\./\_}
+
+ if [ -d ./grpc_robot/services/voltha/"$filename" ]; then
+
+ python3 -m pip install -q voltha-protos=="$version"
+
+ python3 -m robot.libdoc -P . grpc_robot.Voltha docs/"$filename".html
+ python3 -m robot.libdoc -P . grpc_robot.Voltha docs/"$filename".xml
+ fi
+
+done
+
+python3 -m robot.libdoc -P . grpc_robot.Collections docs/collections.html
+python3 -m robot.libdoc -P . grpc_robot.Collections docs/collections.xml
+python3 -m robot.libdoc -P . grpc_robot.DmiTools docs/dmi_tools.html
+python3 -m robot.libdoc -P . grpc_robot.DmiTools docs/dmi_tools.xml
+python3 -m robot.libdoc -P . grpc_robot.VolthaTools docs/voltha_tools.html
+python3 -m robot.libdoc -P . grpc_robot.VolthaTools docs/voltha_tools.xml
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..3913ab4
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,4 @@
+include README.md
+include VERSION
+include LICENSE
+recursive-include docs *
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6c1a420
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,58 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+
+# set default shell
+SHELL = bash -e -o pipefail
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+
+# Variables
+VERSION ?= $(shell cat ./VERSION)
+LINT_ARGS ?= --verbose --configure LineTooLong:130 -e LineTooLong \
+ --configure TooManyTestSteps:60 -e TooManyTestSteps \
+ --configure TooManyTestCases:50 -e TooManyTestCases \
+ --configure TooFewTestSteps:1 \
+ --configure TooFewKeywordSteps:1 \
+ --configure FileTooLong:1500 -e FileTooLong \
+ -e TrailingWhitespace
+
+ROBOT_FILES := $(shell find . -name test.robot -print)
+DMI_SERVER_FILE ?= $(ROOT_DIR)/tests/servers/dmi/dmi_server.py
+
+# For each makefile target, add ## <description> on the target line and it will be listed by 'make help'
+help: ## Print help for each Makefile target
+ @echo "Usage: make [<target>]"
+ @echo "where available targets are:"
+ @echo
+ @grep '^[[:alpha:]_-]*:.* ##' $(MAKEFILE_LIST) \
+ | sort | awk 'BEGIN {FS=":.* ## "}; {printf "%-25s : %s\n", $$1, $$2};'
+
+vst_venv:
+ virtualenv -p python3 $@ ;\
+ source ./$@/bin/activate ;\
+ python -m pip install -r requirements.txt
+ python $(DMI_SERVER_FILE) & echo $$! > server.PID
+
+test: vst_venv
+ source ./$</bin/activate ; set -u ;\
+ rflint $(LINT_ARGS) $(ROBOT_FILES)
+
+clean:
+ find . -name output.xml -print
+
+clean-all: clean
+ rm -rf vst_venv
+ kill `cat server.PID` && rm server.PID
+
+# end file
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..550faab
--- /dev/null
+++ b/README.md
@@ -0,0 +1,47 @@
+# Robot gRPC package
+
+This package allows sending/receiving messages in a gRPC event stream.
+
+## Supported devices
+This gRPC ROBOT library is intended to supported different Protocol Buffer definitions. Precondition is that python files
+generated from Protocol Buffer files are available in a pip package which must be installed before the library
+is used.
+
+| Supported device | Pip package | Pip package version | Library Name |
+| ----------------- | --------------------------- | ------------------- | -------------- |
+| dmi | device-management-interface | 0.9.1 | [grpc_robot.Dmi](docs/dmi_0_9_1.html) |
+| | | 0.9.2 | [grpc_robot.Dmi](docs/dmi_0_9_2.html) |
+| | | 0.9.3 | [grpc_robot.Dmi](docs/dmi_0_9_3.html) |
+| | | 0.9.4 | [grpc_robot.Dmi](docs/dmi_0_9_4.html) |
+| | | 0.9.5 | [grpc_robot.Dmi](docs/dmi_0_9_5.html) |
+| | | 0.9.6 | [grpc_robot.Dmi](docs/dmi_0_9_6.html) |
+| | | 0.9.8 | [grpc_robot.Dmi](docs/dmi_0_9_8.html) |
+| | | 0.9.9 | [grpc_robot.Dmi](docs/dmi_0_9_9.html) |
+| | | 0.10.1 | [grpc_robot.Dmi](docs/dmi_0_10_1.html) |
+| | | 0.10.2 | [grpc_robot.Dmi](docs/dmi_0_10_2.html) |
+| | | 0.12.0 | [grpc_robot.Dmi](docs/dmi_0_12_0.html) |
+| | | 1.0.0 | [grpc_robot.Dmi](docs/dmi_1_0_0.html) |
+| voltha | voltha-protos | 4.0.13 | [grpc_robot.Voltha](docs/voltha_4_0_13.html) |
+
+## Tools
+The package also offers some keywords for convenience to work with Robot Framework.
+
+List of keywords:
+ - [grpc_robot.Collections](docs/collections.html)
+ - [grpc_robot.DmiTools](docs/dmi_tools.html)
+ - [grpc_robot.VolthaTools](docs/voltha_tools.html)
+
+The list of keywords may can be extended by request if required.
+
+## Installation
+
+ pip install robot-grpc
+
+## How to use _robot-grpc_ in Robot Framework
+The library has a named parameter _version_ to indicate the ProtoBuf file set to be used.
+
+ Import Library grpc_robot.Dmi
+ Import Library grpc_robot.Collections
+ Import Library grpc_robot.DmiTools
+ Import Library grpc_robot.VolthaTools
+
diff --git a/RUNTESTS b/RUNTESTS
new file mode 100755
index 0000000..68a3671
--- /dev/null
+++ b/RUNTESTS
@@ -0,0 +1,29 @@
+#!/bin/bash
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+
+python3 -m pip install device-management-interface
+
+# start the fake device manager and catch its pid for terminating
+cd ./tests/servers/dmi
+python3 dmi_server.py &
+dmi_pid=$!
+
+cd ../../..
+
+# run tests ...
+python3 -m robot -N "test" -d $OUTPUT_DIR --nostatusrc tests/test.robot
+
+# terminate the service
+kill -9 $dmi_pid
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..eafef0d
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+2.9.3
\ No newline at end of file
diff --git a/docs/collections.html b/docs/collections.html
new file mode 100644
index 0000000..c07c796
--- /dev/null
+++ b/docs/collections.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Tools for collections (list, dict) related functionality.\x3c/p>","generated":"2021-07-14 13:19:24","inits":[],"keywords":[{"args":["input_dict","search_value"],"doc":"<p>Gets the first key from <i>input_dict\x3c/i> which has the value of <i>search_value\x3c/i>.\x3c/p>\n<p>If <i>search_value\x3c/i> is not found in <i>input_dict\x3c/i>, an empty string is returned.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li><i>input_dict\x3c/i>: <dictionary> to be browsed.\x3c/li>\n<li><i>search_value\x3c/i>: <string>, value to be searched for.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: key of dictionary if search value is in input_dict else empty string\x3c/p>","matched":true,"name":"Dict Get Key By Value","shortdoc":"Gets the first key from _input_dict_ which has the value of _search_value_.","tags":[]},{"args":["values_dict","key","strict=False"],"doc":"<p>Returns the value for given <i>key\x3c/i> in <i>values_dict\x3c/i>.\x3c/p>\n<p>If <i>strict\x3c/i> is set to False (default) it will return given <i>key\x3c/i> if its is not in the dictionary. If set to True, an AssertionError is raised.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li><i>key\x3c/i>: <string>, key to be searched in dictionary.\x3c/li>\n<li><i>values_dict\x3c/i>: <dictionary> in which the key is searched.\x3c/li>\n<li><i>strict\x3c/i>: Optional: <boolean> switch to indicate if an exception shall be raised if key is not in values_dict. Default: False\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<ul>\n<li>if key is in values_dict: Value from <i>values_dict\x3c/i> for <i>key\x3c/i>.\x3c/li>\n<li>else: <i>key\x3c/i>.\x3c/li>\n<li>raises AssertionError in case <i>key\x3c/i> is not in <i>values_dict\x3c/i> and <i>strict\x3c/i> is True.\x3c/li>\n\x3c/ul>","matched":true,"name":"Dict Get Value","shortdoc":"Returns the value for given _key_ in _values_dict_.","tags":[]},{"args":["input_list","key_name","value","match=first"],"doc":"<p>Retrieves a dictionary from a list of dictionaries where <i>key_name\x3c/i> has the <i>value, if _match\x3c/i> is \"first\". Else it returns all matching dictionaries.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li><i>input_list\x3c/i>: <list> ; List of dictionaries.\x3c/li>\n<li><i>key_name\x3c/i>: <dictionary> or <list> ; Name of the key to be searched for.\x3c/li>\n<li><i>value\x3c/i>: <string> or <number> ; Any value of key <i>key_name\x3c/i> to be searched for.\x3c/li>\n\x3c/ul>\n<p><b>Example\x3c/b>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${dict1}\x3c/td>\n<td>Create Dictionary\x3c/td>\n<td>key_key=master1\x3c/td>\n<td>key1=value11\x3c/td>\n<td>key2=value12\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${dict2}\x3c/td>\n<td>Create Dictionary\x3c/td>\n<td>key_key=master2\x3c/td>\n<td>key1=value21\x3c/td>\n<td>key2=value22\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${dict3}\x3c/td>\n<td>Create Dictionary\x3c/td>\n<td>key_key=master3\x3c/td>\n<td>key1=value31\x3c/td>\n<td>key2=value32\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${dict4}\x3c/td>\n<td>Create Dictionary\x3c/td>\n<td>key_key=master4\x3c/td>\n<td>key5=value41\x3c/td>\n<td>key6=value42\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${the_list}\x3c/td>\n<td>Create List\x3c/td>\n<td>${dict1}\x3c/td>\n<td>${dict2}\x3c/td>\n<td>${dict3}\x3c/td>\n<td>${dict4}\x3c/td>\n\x3c/tr>\n<tr>\n<td>${result}\x3c/td>\n<td>List Get Dict By Value\x3c/td>\n<td>${the_list}\x3c/td>\n<td>key_key\x3c/td>\n<td>master4\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Variable ${result} has following structure:\x3c/p>\n<pre>\n${result} = {\n 'key_key': 'master4',\n 'key5': 'value41',\n 'key6': 'value42'\n}\n\x3c/pre>","matched":true,"name":"List Get Dict By Value","shortdoc":"Retrieves a dictionary from a list of dictionaries where _key_name_ has the _value, if _match_ is \"first\". Else it returns all matching dictionaries.","tags":[]},{"args":["snake_str","first_uppercase=False"],"doc":"","matched":true,"name":"To Camel Case","shortdoc":"","tags":[]}],"name":"grpc_robot.Collections","named_args":true,"scope":"TEST","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_10_1.html b/docs/dmi_0_10_1.html
new file mode 100644
index 0000000..b2f0c70
--- /dev/null
+++ b/docs/dmi_0_10_1.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:18:47","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'msgbus_endpoint': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'last_booted': <google.protobuf.Timestamp>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetStartupConfigurationInfo\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StartupConfigInfoRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StartupConfigInfoResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'config_url': <string>,\n 'version': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Startup Configuration Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_10_2.html b/docs/dmi_0_10_2.html
new file mode 100644
index 0000000..927b741
--- /dev/null
+++ b/docs/dmi_0_10_2.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:18:50","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'msgbus_endpoint': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'last_booted': <google.protobuf.Timestamp>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetStartupConfigurationInfo\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StartupConfigInfoRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StartupConfigInfoResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'config_url': <string>,\n 'version': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Startup Configuration Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_12_0.html b/docs/dmi_0_12_0.html
new file mode 100644
index 0000000..9cd948a
--- /dev/null
+++ b/docs/dmi_0_12_0.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:18:52","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'msgbus_endpoint': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'last_booted': <google.protobuf.Timestamp>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetStartupConfigurationInfo\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StartupConfigInfoRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StartupConfigInfoResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'config_url': <string>,\n 'version': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Startup Configuration Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_1.html b/docs/dmi_0_9_1.html
new file mode 100644
index 0000000..1f041e6
--- /dev/null
+++ b/docs/dmi_0_9_1.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:18:55","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < EVENT_NAME_UNDEFINED | EVENT_TRANSCEIVER_PLUG_OUT | EVENT_TRANSCEIVER_PLUG_IN | EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD | EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD | EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD | EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD | EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD | EVENT_TRANSCEIVER_FAILURE | EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_FAILURE_RECOVERED | EVENT_PSU_PLUG_OUT | EVENT_PSU_PLUG_IN | EVENT_PSU_FAILURE | EVENT_PSU_FAILURE_RECOVERED | EVENT_FAN_FAILURE | EVENT_FAN_PLUG_OUT | EVENT_FAN_PLUG_IN | EVENT_FAN_FAILURE_RECOVERED | EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL | EVENT_CPU_TEMPERATURE_ABOVE_FATAL | EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED | EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED | EVENT_HW_DEVICE_RESET | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < EVENT_NAME_UNDEFINED | EVENT_TRANSCEIVER_PLUG_OUT | EVENT_TRANSCEIVER_PLUG_IN | EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD | EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD | EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD | EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD | EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD | EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD | EVENT_TRANSCEIVER_FAILURE | EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED | EVENT_TRANSCEIVER_FAILURE_RECOVERED | EVENT_PSU_PLUG_OUT | EVENT_PSU_PLUG_IN | EVENT_PSU_FAILURE | EVENT_PSU_FAILURE_RECOVERED | EVENT_FAN_FAILURE | EVENT_FAN_PLUG_OUT | EVENT_FAN_PLUG_IN | EVENT_FAN_FAILURE_RECOVERED | EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL | EVENT_CPU_TEMPERATURE_ABOVE_FATAL | EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED | EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED | EVENT_HW_DEVICE_RESET | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED | EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < COMP_OPER_STATE_UNDEFINED | COMP_OPER_STATE_UNKNOWN | COMP_OPER_STATE_DISABLED | COMP_OPER_STATE_ENABLED | COMP_OPER_STATE_TESTING >\n 'usage_state': < COMP_USAGE_STATE_UNDEFINED | COMP_USAGE_STATE_UNKNOWN | COMP_USAGE_STATE_IDLE | COMP_USAGE_STATE_ACTIVE | COMP_USAGE_STATE_BUSY >\n 'alarm_state': < COMP_ALARM_STATE_UNDEFINED | COMP_ALARM_STATE_UNKNOWN | COMP_ALARM_STATE_UNDER_REPAIR | COMP_ALARM_STATE_CRITICAL | COMP_ALARM_STATE_MAJOR | COMP_ALARM_STATE_MINOR | COMP_ALARM_STATE_WARNING | COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < COMP_STANDBY_STATE_UNDEFINED | COMP_STANDBY_STATE_UNKNOWN | COMP_STANDBY_STATE_HOT | COMP_STANDBY_STATE_COLD | COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < SENSOR_VALUE_TYPE_UNDEFINED | SENSOR_VALUE_TYPE_OTHER | SENSOR_VALUE_TYPE_UNKNOWN | SENSOR_VALUE_TYPE_VOLTS_AC | SENSOR_VALUE_TYPE_VOLTS_DC | SENSOR_VALUE_TYPE_AMPERES | SENSOR_VALUE_TYPE_WATTS | SENSOR_VALUE_TYPE_HERTZ | SENSOR_VALUE_TYPE_CELSIUS | SENSOR_VALUE_TYPE_PERCENT_RH | SENSOR_VALUE_TYPE_RPM | SENSOR_VALUE_TYPE_CMM | SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < SENSOR_VALUE_SCALE_UNDEFINED | SENSOR_VALUE_SCALE_YOCTO | SENSOR_VALUE_SCALE_ZEPTO | SENSOR_VALUE_SCALE_ATTO | SENSOR_VALUE_SCALE_FEMTO | SENSOR_VALUE_SCALE_PICO | SENSOR_VALUE_SCALE_NANO | SENSOR_VALUE_SCALE_MICRO | SENSOR_VALUE_SCALE_MILLI | SENSOR_VALUE_SCALE_UNITS | SENSOR_VALUE_SCALE_KILO | SENSOR_VALUE_SCALE_MEGA | SENSOR_VALUE_SCALE_GIGA | SENSOR_VALUE_SCALE_TERA | SENSOR_VALUE_SCALE_PETA | SENSOR_VALUE_SCALE_EXA | SENSOR_VALUE_SCALE_ZETTA | SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < SENSOR_STATUS_UNDEFINED | SENSOR_STATUS_OK | SENSOR_STATUS_UNAVAILABLE | SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: Uuid\n 'uuid': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < COMP_OPER_STATE_UNDEFINED | COMP_OPER_STATE_UNKNOWN | COMP_OPER_STATE_DISABLED | COMP_OPER_STATE_ENABLED | COMP_OPER_STATE_TESTING >\n 'usage_state': < COMP_USAGE_STATE_UNDEFINED | COMP_USAGE_STATE_UNKNOWN | COMP_USAGE_STATE_IDLE | COMP_USAGE_STATE_ACTIVE | COMP_USAGE_STATE_BUSY >\n 'alarm_state': < COMP_ALARM_STATE_UNDEFINED | COMP_ALARM_STATE_UNKNOWN | COMP_ALARM_STATE_UNDER_REPAIR | COMP_ALARM_STATE_CRITICAL | COMP_ALARM_STATE_MAJOR | COMP_ALARM_STATE_MINOR | COMP_ALARM_STATE_WARNING | COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < COMP_STANDBY_STATE_UNDEFINED | COMP_STANDBY_STATE_UNKNOWN | COMP_STANDBY_STATE_HOT | COMP_STANDBY_STATE_COLD | COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < SENSOR_VALUE_TYPE_UNDEFINED | SENSOR_VALUE_TYPE_OTHER | SENSOR_VALUE_TYPE_UNKNOWN | SENSOR_VALUE_TYPE_VOLTS_AC | SENSOR_VALUE_TYPE_VOLTS_DC | SENSOR_VALUE_TYPE_AMPERES | SENSOR_VALUE_TYPE_WATTS | SENSOR_VALUE_TYPE_HERTZ | SENSOR_VALUE_TYPE_CELSIUS | SENSOR_VALUE_TYPE_PERCENT_RH | SENSOR_VALUE_TYPE_RPM | SENSOR_VALUE_TYPE_CMM | SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < SENSOR_VALUE_SCALE_UNDEFINED | SENSOR_VALUE_SCALE_YOCTO | SENSOR_VALUE_SCALE_ZEPTO | SENSOR_VALUE_SCALE_ATTO | SENSOR_VALUE_SCALE_FEMTO | SENSOR_VALUE_SCALE_PICO | SENSOR_VALUE_SCALE_NANO | SENSOR_VALUE_SCALE_MICRO | SENSOR_VALUE_SCALE_MILLI | SENSOR_VALUE_SCALE_UNITS | SENSOR_VALUE_SCALE_KILO | SENSOR_VALUE_SCALE_MEGA | SENSOR_VALUE_SCALE_GIGA | SENSOR_VALUE_SCALE_TERA | SENSOR_VALUE_SCALE_PETA | SENSOR_VALUE_SCALE_EXA | SENSOR_VALUE_SCALE_ZETTA | SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < SENSOR_STATUS_UNDEFINED | SENSOR_STATUS_OK | SENSOR_STATUS_UNAVAILABLE | SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < COMP_OPER_STATE_UNDEFINED | COMP_OPER_STATE_UNKNOWN | COMP_OPER_STATE_DISABLED | COMP_OPER_STATE_ENABLED | COMP_OPER_STATE_TESTING >\n 'usage_state': < COMP_USAGE_STATE_UNDEFINED | COMP_USAGE_STATE_UNKNOWN | COMP_USAGE_STATE_IDLE | COMP_USAGE_STATE_ACTIVE | COMP_USAGE_STATE_BUSY >\n 'alarm_state': < COMP_ALARM_STATE_UNDEFINED | COMP_ALARM_STATE_UNKNOWN | COMP_ALARM_STATE_UNDER_REPAIR | COMP_ALARM_STATE_CRITICAL | COMP_ALARM_STATE_MAJOR | COMP_ALARM_STATE_MINOR | COMP_ALARM_STATE_WARNING | COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < COMP_STANDBY_STATE_UNDEFINED | COMP_STANDBY_STATE_UNKNOWN | COMP_STANDBY_STATE_HOT | COMP_STANDBY_STATE_COLD | COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < SENSOR_VALUE_TYPE_UNDEFINED | SENSOR_VALUE_TYPE_OTHER | SENSOR_VALUE_TYPE_UNKNOWN | SENSOR_VALUE_TYPE_VOLTS_AC | SENSOR_VALUE_TYPE_VOLTS_DC | SENSOR_VALUE_TYPE_AMPERES | SENSOR_VALUE_TYPE_WATTS | SENSOR_VALUE_TYPE_HERTZ | SENSOR_VALUE_TYPE_CELSIUS | SENSOR_VALUE_TYPE_PERCENT_RH | SENSOR_VALUE_TYPE_RPM | SENSOR_VALUE_TYPE_CMM | SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < SENSOR_VALUE_SCALE_UNDEFINED | SENSOR_VALUE_SCALE_YOCTO | SENSOR_VALUE_SCALE_ZEPTO | SENSOR_VALUE_SCALE_ATTO | SENSOR_VALUE_SCALE_FEMTO | SENSOR_VALUE_SCALE_PICO | SENSOR_VALUE_SCALE_NANO | SENSOR_VALUE_SCALE_MICRO | SENSOR_VALUE_SCALE_MILLI | SENSOR_VALUE_SCALE_UNITS | SENSOR_VALUE_SCALE_KILO | SENSOR_VALUE_SCALE_MEGA | SENSOR_VALUE_SCALE_GIGA | SENSOR_VALUE_SCALE_TERA | SENSOR_VALUE_SCALE_PETA | SENSOR_VALUE_SCALE_EXA | SENSOR_VALUE_SCALE_ZETTA | SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < SENSOR_STATUS_UNDEFINED | SENSOR_STATUS_OK | SENSOR_STATUS_UNAVAILABLE | SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < COMP_OPER_STATE_UNDEFINED | COMP_OPER_STATE_UNKNOWN | COMP_OPER_STATE_DISABLED | COMP_OPER_STATE_ENABLED | COMP_OPER_STATE_TESTING >\n 'usage_state': < COMP_USAGE_STATE_UNDEFINED | COMP_USAGE_STATE_UNKNOWN | COMP_USAGE_STATE_IDLE | COMP_USAGE_STATE_ACTIVE | COMP_USAGE_STATE_BUSY >\n 'alarm_state': < COMP_ALARM_STATE_UNDEFINED | COMP_ALARM_STATE_UNKNOWN | COMP_ALARM_STATE_UNDER_REPAIR | COMP_ALARM_STATE_CRITICAL | COMP_ALARM_STATE_MAJOR | COMP_ALARM_STATE_MINOR | COMP_ALARM_STATE_WARNING | COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < COMP_STANDBY_STATE_UNDEFINED | COMP_STANDBY_STATE_UNKNOWN | COMP_STANDBY_STATE_HOT | COMP_STANDBY_STATE_COLD | COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < SENSOR_VALUE_TYPE_UNDEFINED | SENSOR_VALUE_TYPE_OTHER | SENSOR_VALUE_TYPE_UNKNOWN | SENSOR_VALUE_TYPE_VOLTS_AC | SENSOR_VALUE_TYPE_VOLTS_DC | SENSOR_VALUE_TYPE_AMPERES | SENSOR_VALUE_TYPE_WATTS | SENSOR_VALUE_TYPE_HERTZ | SENSOR_VALUE_TYPE_CELSIUS | SENSOR_VALUE_TYPE_PERCENT_RH | SENSOR_VALUE_TYPE_RPM | SENSOR_VALUE_TYPE_CMM | SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < SENSOR_VALUE_SCALE_UNDEFINED | SENSOR_VALUE_SCALE_YOCTO | SENSOR_VALUE_SCALE_ZEPTO | SENSOR_VALUE_SCALE_ATTO | SENSOR_VALUE_SCALE_FEMTO | SENSOR_VALUE_SCALE_PICO | SENSOR_VALUE_SCALE_NANO | SENSOR_VALUE_SCALE_MICRO | SENSOR_VALUE_SCALE_MILLI | SENSOR_VALUE_SCALE_UNITS | SENSOR_VALUE_SCALE_KILO | SENSOR_VALUE_SCALE_MEGA | SENSOR_VALUE_SCALE_GIGA | SENSOR_VALUE_SCALE_TERA | SENSOR_VALUE_SCALE_PETA | SENSOR_VALUE_SCALE_EXA | SENSOR_VALUE_SCALE_ZETTA | SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < SENSOR_STATUS_UNDEFINED | SENSOR_STATUS_OK | SENSOR_STATUS_UNAVAILABLE | SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < COMPONENT_TYPE_UNDEFINED | COMPONENT_TYPE_UNKNOWN | COMPONENT_TYPE_CHASSIS | COMPONENT_TYPE_BACKPLANE | COMPONENT_TYPE_CONTAINER | COMPONENT_TYPE_POWER_SUPPLY | COMPONENT_TYPE_FAN | COMPONENT_TYPE_SENSOR | COMPONENT_TYPE_MODULE | COMPONENT_TYPE_PORT | COMPONENT_TYPE_CPU | COMPONENT_TYPE_BATTERY | COMPONENT_TYPE_STORAGE | COMPONENT_TYPE_MEMORY | COMPONENT_TYPE_TRANSCEIVER | COMPONENT_TYPE_GPON_TRANSCEIVER | COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < COMP_OPER_STATE_UNDEFINED | COMP_OPER_STATE_UNKNOWN | COMP_OPER_STATE_DISABLED | COMP_OPER_STATE_ENABLED | COMP_OPER_STATE_TESTING >\n 'usage_state': < COMP_USAGE_STATE_UNDEFINED | COMP_USAGE_STATE_UNKNOWN | COMP_USAGE_STATE_IDLE | COMP_USAGE_STATE_ACTIVE | COMP_USAGE_STATE_BUSY >\n 'alarm_state': < COMP_ALARM_STATE_UNDEFINED | COMP_ALARM_STATE_UNKNOWN | COMP_ALARM_STATE_UNDER_REPAIR | COMP_ALARM_STATE_CRITICAL | COMP_ALARM_STATE_MAJOR | COMP_ALARM_STATE_MINOR | COMP_ALARM_STATE_WARNING | COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < COMP_STANDBY_STATE_UNDEFINED | COMP_STANDBY_STATE_UNKNOWN | COMP_STANDBY_STATE_HOT | COMP_STANDBY_STATE_COLD | COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < SENSOR_VALUE_TYPE_UNDEFINED | SENSOR_VALUE_TYPE_OTHER | SENSOR_VALUE_TYPE_UNKNOWN | SENSOR_VALUE_TYPE_VOLTS_AC | SENSOR_VALUE_TYPE_VOLTS_DC | SENSOR_VALUE_TYPE_AMPERES | SENSOR_VALUE_TYPE_WATTS | SENSOR_VALUE_TYPE_HERTZ | SENSOR_VALUE_TYPE_CELSIUS | SENSOR_VALUE_TYPE_PERCENT_RH | SENSOR_VALUE_TYPE_RPM | SENSOR_VALUE_TYPE_CMM | SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < SENSOR_VALUE_SCALE_UNDEFINED | SENSOR_VALUE_SCALE_YOCTO | SENSOR_VALUE_SCALE_ZEPTO | SENSOR_VALUE_SCALE_ATTO | SENSOR_VALUE_SCALE_FEMTO | SENSOR_VALUE_SCALE_PICO | SENSOR_VALUE_SCALE_NANO | SENSOR_VALUE_SCALE_MICRO | SENSOR_VALUE_SCALE_MILLI | SENSOR_VALUE_SCALE_UNITS | SENSOR_VALUE_SCALE_KILO | SENSOR_VALUE_SCALE_MEGA | SENSOR_VALUE_SCALE_GIGA | SENSOR_VALUE_SCALE_TERA | SENSOR_VALUE_SCALE_PETA | SENSOR_VALUE_SCALE_EXA | SENSOR_VALUE_SCALE_ZETTA | SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < SENSOR_STATUS_UNDEFINED | SENSOR_STATUS_OK | SENSOR_STATUS_UNAVAILABLE | SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < COMP_ADMIN_STATE_UNDEFINED | COMP_ADMIN_STATE_UNKNOWN | COMP_ADMIN_STATE_LOCKED | COMP_ADMIN_STATE_SHUTTING_DOWN | COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < METRIC_NAME_UNDEFINED | METRIC_FAN_SPEED | METRIC_CPU_TEMP | METRIC_CPU_USAGE_PERCENTAGE | METRIC_TRANSCEIVER_TEMP | METRIC_TRANSCEIVER_VOLTAGE | METRIC_TRANSCEIVER_BIAS | METRIC_TRANSCEIVER_RX_POWER | METRIC_TRANSCEIVER_TX_POWER | METRIC_TRANSCEIVER_WAVELENGTH | METRIC_DISK_TEMP | METRIC_DISK_CAPACITY | METRIC_DISK_USAGE | METRIC_DISK_USAGE_PERCENTAGE | METRIC_DISK_READ_WRITE_PERCENTAGE | METRIC_DISK_FAULTY_CELLS_PERCENTAGE | METRIC_RAM_TEMP | METRIC_RAM_CAPACITY | METRIC_RAM_USAGE | METRIC_RAM_USAGE_PERCENTAGE | METRIC_POWER_MAX | METRIC_POWER_USAGE | METRIC_POWER_USAGE_PERCENTAGE | METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'metric': { # type: Metric\n 'metric_id': < METRIC_NAME_UNDEFINED | METRIC_FAN_SPEED | METRIC_CPU_TEMP | METRIC_CPU_USAGE_PERCENTAGE | METRIC_TRANSCEIVER_TEMP | METRIC_TRANSCEIVER_VOLTAGE | METRIC_TRANSCEIVER_BIAS | METRIC_TRANSCEIVER_RX_POWER | METRIC_TRANSCEIVER_TX_POWER | METRIC_TRANSCEIVER_WAVELENGTH | METRIC_DISK_TEMP | METRIC_DISK_CAPACITY | METRIC_DISK_USAGE | METRIC_DISK_USAGE_PERCENTAGE | METRIC_DISK_READ_WRITE_PERCENTAGE | METRIC_DISK_FAULTY_CELLS_PERCENTAGE | METRIC_RAM_TEMP | METRIC_RAM_CAPACITY | METRIC_RAM_USAGE | METRIC_RAM_USAGE_PERCENTAGE | METRIC_POWER_MAX | METRIC_POWER_USAGE | METRIC_POWER_USAGE_PERCENTAGE | METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < SENSOR_VALUE_TYPE_UNDEFINED | SENSOR_VALUE_TYPE_OTHER | SENSOR_VALUE_TYPE_UNKNOWN | SENSOR_VALUE_TYPE_VOLTS_AC | SENSOR_VALUE_TYPE_VOLTS_DC | SENSOR_VALUE_TYPE_AMPERES | SENSOR_VALUE_TYPE_WATTS | SENSOR_VALUE_TYPE_HERTZ | SENSOR_VALUE_TYPE_CELSIUS | SENSOR_VALUE_TYPE_PERCENT_RH | SENSOR_VALUE_TYPE_RPM | SENSOR_VALUE_TYPE_CMM | SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < SENSOR_VALUE_SCALE_UNDEFINED | SENSOR_VALUE_SCALE_YOCTO | SENSOR_VALUE_SCALE_ZEPTO | SENSOR_VALUE_SCALE_ATTO | SENSOR_VALUE_SCALE_FEMTO | SENSOR_VALUE_SCALE_PICO | SENSOR_VALUE_SCALE_NANO | SENSOR_VALUE_SCALE_MICRO | SENSOR_VALUE_SCALE_MILLI | SENSOR_VALUE_SCALE_UNITS | SENSOR_VALUE_SCALE_KILO | SENSOR_VALUE_SCALE_MEGA | SENSOR_VALUE_SCALE_GIGA | SENSOR_VALUE_SCALE_TERA | SENSOR_VALUE_SCALE_PETA | SENSOR_VALUE_SCALE_EXA | SENSOR_VALUE_SCALE_ZETTA | SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < SENSOR_STATUS_UNDEFINED | SENSOR_STATUS_OK | SENSOR_STATUS_UNAVAILABLE | SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < METRIC_NAME_UNDEFINED | METRIC_FAN_SPEED | METRIC_CPU_TEMP | METRIC_CPU_USAGE_PERCENTAGE | METRIC_TRANSCEIVER_TEMP | METRIC_TRANSCEIVER_VOLTAGE | METRIC_TRANSCEIVER_BIAS | METRIC_TRANSCEIVER_RX_POWER | METRIC_TRANSCEIVER_TX_POWER | METRIC_TRANSCEIVER_WAVELENGTH | METRIC_DISK_TEMP | METRIC_DISK_CAPACITY | METRIC_DISK_USAGE | METRIC_DISK_USAGE_PERCENTAGE | METRIC_DISK_READ_WRITE_PERCENTAGE | METRIC_DISK_FAULTY_CELLS_PERCENTAGE | METRIC_RAM_TEMP | METRIC_RAM_CAPACITY | METRIC_RAM_USAGE | METRIC_RAM_USAGE_PERCENTAGE | METRIC_POWER_MAX | METRIC_POWER_USAGE | METRIC_POWER_USAGE_PERCENTAGE | METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < METRIC_NAME_UNDEFINED | METRIC_FAN_SPEED | METRIC_CPU_TEMP | METRIC_CPU_USAGE_PERCENTAGE | METRIC_TRANSCEIVER_TEMP | METRIC_TRANSCEIVER_VOLTAGE | METRIC_TRANSCEIVER_BIAS | METRIC_TRANSCEIVER_RX_POWER | METRIC_TRANSCEIVER_TX_POWER | METRIC_TRANSCEIVER_WAVELENGTH | METRIC_DISK_TEMP | METRIC_DISK_CAPACITY | METRIC_DISK_USAGE | METRIC_DISK_USAGE_PERCENTAGE | METRIC_DISK_READ_WRITE_PERCENTAGE | METRIC_DISK_FAULTY_CELLS_PERCENTAGE | METRIC_RAM_TEMP | METRIC_RAM_CAPACITY | METRIC_RAM_USAGE | METRIC_RAM_USAGE_PERCENTAGE | METRIC_POWER_MAX | METRIC_POWER_USAGE | METRIC_POWER_USAGE_PERCENTAGE | METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | ERROR_IN_REQUEST | INTERNAL_ERROR | DEVICE_IN_WRONG_STATE | INVALID_IMAGE | WRONG_IMAGE_CHECKSUM >\n 'state': < UNDEFINED_STATE | COPYING_IMAGE | INSTALLING_IMAGE | COMMITTING_IMAGE | REBOOTING_DEVICE | UPGRADE_COMPLETE | UPGRADE_FAILED | ACTIVATION_COMPLETE | ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | ERROR_IN_REQUEST | INTERNAL_ERROR | DEVICE_IN_WRONG_STATE | INVALID_IMAGE | WRONG_IMAGE_CHECKSUM >\n 'state': < UNDEFINED_STATE | COPYING_IMAGE | INSTALLING_IMAGE | COMMITTING_IMAGE | REBOOTING_DEVICE | UPGRADE_COMPLETE | UPGRADE_FAILED | ACTIVATION_COMPLETE | ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | UNKNOWN_DEVICE | INTERNAL_ERROR | WRONG_METRIC | WRONG_EVENT | LOGGING_ENDPOINT_ERROR | LOGGING_ENDPOINT_PROTOCOL_ERROR | KAFKA_ENDPOINT_ERROR >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < UNDEFINED_STATUS | OK | ERROR >\n 'reason': < UNDEFINED_REASON | ERROR_IN_REQUEST | INTERNAL_ERROR | DEVICE_IN_WRONG_STATE | INVALID_IMAGE | WRONG_IMAGE_CHECKSUM >\n 'state': < UNDEFINED_STATE | COPYING_IMAGE | INSTALLING_IMAGE | COMMITTING_IMAGE | REBOOTING_DEVICE | UPGRADE_COMPLETE | UPGRADE_FAILED | ACTIVATION_COMPLETE | ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_2.html b/docs/dmi_0_9_2.html
new file mode 100644
index 0000000..c9af988
--- /dev/null
+++ b/docs/dmi_0_9_2.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:18:57","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: Uuid\n 'uuid': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'responses': [ # list of:\n { # type: DeviceLogResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_3.html b/docs/dmi_0_9_3.html
new file mode 100644
index 0000000..19951ce
--- /dev/null
+++ b/docs/dmi_0_9_3.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:00","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: Uuid\n 'uuid': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'responses': [ # list of:\n { # type: DeviceLogResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_4.html b/docs/dmi_0_9_4.html
new file mode 100644
index 0000000..69b8034
--- /dev/null
+++ b/docs/dmi_0_9_4.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:02","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_5.html b/docs/dmi_0_9_5.html
new file mode 100644
index 0000000..a524433
--- /dev/null
+++ b/docs/dmi_0_9_5.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:05","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INTERMEDIATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_6.html b/docs/dmi_0_9_6.html
new file mode 100644
index 0000000..4beaa83
--- /dev/null
+++ b/docs/dmi_0_9_6.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:08","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - WRONG_METRIC |\n 4 - WRONG_EVENT |\n 5 - LOGGING_ENDPOINT_ERROR |\n 6 - LOGGING_ENDPOINT_PROTOCOL_ERROR |\n 7 - KAFKA_ENDPOINT_ERROR |\n 8 - UNKNOWN_LOG_ENTITY |\n 9 - ERROR_FETCHING_CONFIG |\n 10 - INVALID_CONFIG >\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_8.html b/docs/dmi_0_9_8.html
new file mode 100644
index 0000000..37e4883
--- /dev/null
+++ b/docs/dmi_0_9_8.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:10","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetStartupConfigurationInfo\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StartupConfigInfoRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StartupConfigInfoResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'config_url': <string>,\n 'version': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Startup Configuration Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_0_9_9.html b/docs/dmi_0_9_9.html
new file mode 100644
index 0000000..c2a6bc3
--- /dev/null
+++ b/docs/dmi_0_9_9.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:13","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'devices': [ # list of:\n { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER |\n 15 - COMPONENT_TYPE_GPON_TRANSCEIVER |\n 16 - COMPONENT_TYPE_XGS_PON_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - SENSOR_VALUE_TYPE_UNDEFINED |\n 1 - SENSOR_VALUE_TYPE_OTHER |\n 2 - SENSOR_VALUE_TYPE_UNKNOWN |\n 3 - SENSOR_VALUE_TYPE_VOLTS_AC |\n 4 - SENSOR_VALUE_TYPE_VOLTS_DC |\n 5 - SENSOR_VALUE_TYPE_AMPERES |\n 6 - SENSOR_VALUE_TYPE_WATTS |\n 7 - SENSOR_VALUE_TYPE_HERTZ |\n 8 - SENSOR_VALUE_TYPE_CELSIUS |\n 9 - SENSOR_VALUE_TYPE_PERCENT_RH |\n 10 - SENSOR_VALUE_TYPE_RPM |\n 11 - SENSOR_VALUE_TYPE_CMM |\n 12 - SENSOR_VALUE_TYPE_TRUTH_VALUE >\n 'scale': < 0 - SENSOR_VALUE_SCALE_UNDEFINED |\n 1 - SENSOR_VALUE_SCALE_YOCTO |\n 2 - SENSOR_VALUE_SCALE_ZEPTO |\n 3 - SENSOR_VALUE_SCALE_ATTO |\n 4 - SENSOR_VALUE_SCALE_FEMTO |\n 5 - SENSOR_VALUE_SCALE_PICO |\n 6 - SENSOR_VALUE_SCALE_NANO |\n 7 - SENSOR_VALUE_SCALE_MICRO |\n 8 - SENSOR_VALUE_SCALE_MILLI |\n 9 - SENSOR_VALUE_SCALE_UNITS |\n 10 - SENSOR_VALUE_SCALE_KILO |\n 11 - SENSOR_VALUE_SCALE_MEGA |\n 12 - SENSOR_VALUE_SCALE_GIGA |\n 13 - SENSOR_VALUE_SCALE_TERA |\n 14 - SENSOR_VALUE_SCALE_PETA |\n 15 - SENSOR_VALUE_SCALE_EXA |\n 16 - SENSOR_VALUE_SCALE_ZETTA |\n 17 - SENSOR_VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetStartupConfigurationInfo\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StartupConfigInfoRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StartupConfigInfoResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n 'config_url': <string>,\n 'version': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Startup Configuration Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR >\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_1_0_0.html b/docs/dmi_1_0_0.html
new file mode 100644
index 0000000..604c7cd
--- /dev/null
+++ b/docs/dmi_1_0_0.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.3\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.4\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.5\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.6\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.8\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.9.9\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.1\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.10.2\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>0.12.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n<tr>\n<td>dmi\x3c/td>\n<td>device-management-interface\x3c/td>\n<td>1.0.0\x3c/td>\n<td>grpc_robot.Dmi\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:16","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>device-management-interface\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Dmi Version Get","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ListEventsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'events': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 505 - EVENT_HW_DEVICE_REBOOT >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service List Events","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>StreamEvents\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: Event\n 'event_metadata': { # type: EventMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 505 - EVENT_HW_DEVICE_REBOOT >\n 'raised_ts': <google.protobuf.Timestamp>,\n 'threshold_info': { # type: ThresholdInformation\n 'observed_value': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n 'add_info': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Stream Events","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateEventsConfiguration\x3c/i> from <i>NativeEventsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: EventsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: EventsCfg\n 'items': [ # list of:\n { # type: EventCfg\n 'event_id': < 0 - EVENT_NAME_UNDEFINED |\n 100 - EVENT_TRANSCEIVER_PLUG_OUT |\n 101 - EVENT_TRANSCEIVER_PLUG_IN |\n 102 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD |\n 103 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD |\n 104 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD |\n 105 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD |\n 106 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD |\n 107 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD |\n 108 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD |\n 109 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD |\n 110 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD |\n 111 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD |\n 112 - EVENT_TRANSCEIVER_FAILURE |\n 113 - EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED |\n 114 - EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED |\n 115 - EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED |\n 116 - EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED |\n 117 - EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED |\n 118 - EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED |\n 119 - EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 120 - EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED |\n 121 - EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED |\n 122 - EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED |\n 123 - EVENT_TRANSCEIVER_FAILURE_RECOVERED |\n 200 - EVENT_PSU_PLUG_OUT |\n 201 - EVENT_PSU_PLUG_IN |\n 202 - EVENT_PSU_FAILURE |\n 203 - EVENT_PSU_FAILURE_RECOVERED |\n 300 - EVENT_FAN_FAILURE |\n 301 - EVENT_FAN_PLUG_OUT |\n 302 - EVENT_FAN_PLUG_IN |\n 303 - EVENT_FAN_FAILURE_RECOVERED |\n 400 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL |\n 401 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL |\n 402 - EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 403 - EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 500 - EVENT_HW_DEVICE_RESET |\n 501 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL |\n 502 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL |\n 503 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED |\n 504 - EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED |\n 505 - EVENT_HW_DEVICE_REBOOT >\n 'is_configured': <bool>,\n 'thresholds': { # type: Thresholds\n '<i>ONEOF threshold\x3c/i>: <b>upper\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n '<i>ONEOF threshold\x3c/i>: <b>lower\x3c/b>': { # type: WaterMarks\n 'high': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n 'low': { # type: ValueType\n '<i>ONEOF val\x3c/i>: <b>int_val\x3c/b>': <int64>,\n '<i>ONEOF val\x3c/i>: <b>uint_val\x3c/b>': <uint64>,\n '<i>ONEOF val\x3c/i>: <b>float_val\x3c/b>': <float>,\n }\n }\n }\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: EventsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Event Mgmt Service Update Events Configuration","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoGetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: HWComponentInfoGetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'component': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'entities': [ # list of:\n <string>,\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggableEntities\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetLoggableEntitiesRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logLevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Loggable Entities","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetLoggingEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Logging Endpoint","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetManagedDevices\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n{ # type: ManagedDevicesResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'devices': [ # list of:\n { # type: ManagedDeviceInfo\n 'info': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n }\n ]\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Managed Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>GetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMsgBusEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'msgbus_endpoint': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetPhysicalInventory\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: PhysicalInventoryRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/p>\n<pre>\n[ # list of:\n { # type: PhysicalInventoryResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'inventory': { # type: Hardware\n 'last_change': <google.protobuf.Timestamp>,\n 'root': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'last_booted': <google.protobuf.Timestamp>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Get Physical Inventory","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>HeartbeatCheck\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: Heartbeat\n 'heartbeat_signature': <fixed32>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Heartbeat Check","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RebootDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: RebootDeviceRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: RebootDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Reboot Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetHWComponentInfo\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HWComponentInfoSetRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n 'changes': { # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: HWComponentInfoSetResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Hw Component Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLogLevel\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLogLevelRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'loglevels': [ # list of:\n { # type: EntitiesLogLevel\n 'logLevel': < 0 - TRACE |\n 1 - DEBUG |\n 2 - INFO |\n 3 - WARN |\n 4 - ERROR >\n 'entities': [ # list of:\n <string>,\n ]\n }\n ]\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetLogLevelResponse\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Log Level","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetLoggingEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetLoggingEndpointRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'logging_endpoint': <string>,\n 'logging_protocol': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Logging Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>SetMsgBusEndpoint\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: SetMsgBusEndpointRequest\n 'msgbus_endpoint': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: SetRemoteEndpointResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Set Msg Bus Endpoint","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StartManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ModifiableComponent\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'parent': { # type: Component\n 'name': <string>,\n 'class': < 0 - COMPONENT_TYPE_UNDEFINED |\n 1 - COMPONENT_TYPE_UNKNOWN |\n 2 - COMPONENT_TYPE_CHASSIS |\n 3 - COMPONENT_TYPE_BACKPLANE |\n 4 - COMPONENT_TYPE_CONTAINER |\n 5 - COMPONENT_TYPE_POWER_SUPPLY |\n 6 - COMPONENT_TYPE_FAN |\n 7 - COMPONENT_TYPE_SENSOR |\n 8 - COMPONENT_TYPE_MODULE |\n 9 - COMPONENT_TYPE_PORT |\n 10 - COMPONENT_TYPE_CPU |\n 11 - COMPONENT_TYPE_BATTERY |\n 12 - COMPONENT_TYPE_STORAGE |\n 13 - COMPONENT_TYPE_MEMORY |\n 14 - COMPONENT_TYPE_TRANSCEIVER >\n 'description': <string>,\n 'parent': <string>,\n 'parent_rel_pos': <int32>,\n 'children': [ # list of:\n < recursive type: Component >\n ]\n 'hardware_rev': <string>,\n 'firmware_rev': <string>,\n 'software_rev': <string>,\n 'serial_num': <string>,\n 'mfg_name': <string>,\n 'model_name': <string>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'is_fru': <bool>,\n 'mfg_date': <google.protobuf.Timestamp>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'state': { # type: ComponentState\n 'state_last_changed': <google.protobuf.Timestamp>,\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n 'oper_state': < 0 - COMP_OPER_STATE_UNDEFINED |\n 1 - COMP_OPER_STATE_UNKNOWN |\n 2 - COMP_OPER_STATE_DISABLED |\n 3 - COMP_OPER_STATE_ENABLED |\n 4 - COMP_OPER_STATE_TESTING >\n 'usage_state': < 0 - COMP_USAGE_STATE_UNDEFINED |\n 1 - COMP_USAGE_STATE_UNKNOWN |\n 2 - COMP_USAGE_STATE_IDLE |\n 3 - COMP_USAGE_STATE_ACTIVE |\n 4 - COMP_USAGE_STATE_BUSY >\n 'alarm_state': < 0 - COMP_ALARM_STATE_UNDEFINED |\n 1 - COMP_ALARM_STATE_UNKNOWN |\n 2 - COMP_ALARM_STATE_UNDER_REPAIR |\n 3 - COMP_ALARM_STATE_CRITICAL |\n 4 - COMP_ALARM_STATE_MAJOR |\n 5 - COMP_ALARM_STATE_MINOR |\n 6 - COMP_ALARM_STATE_WARNING |\n 7 - COMP_ALARM_STATE_INDETERMINATE >\n 'standby_state': < 0 - COMP_STANDBY_STATE_UNDEFINED |\n 1 - COMP_STANDBY_STATE_UNKNOWN |\n 2 - COMP_STANDBY_STATE_HOT |\n 3 - COMP_STANDBY_STATE_COLD |\n 4 - COMP_STANDBY_STATE_PROVIDING_SERVICE >\n }\n 'sensor_data': [ # list of:\n { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n ]\n '<i>ONEOF specific\x3c/i>: <b>port_attr\x3c/b>': { # type: PortComponentAttributes\n 'connector_type': < 0 - CONNECTOR_TYPE_UNDEFINED |\n 1 - RJ45 |\n 2 - FIBER_LC |\n 3 - FIBER_SC_PC |\n 4 - FIBER_MPO |\n 5 - RS232 >\n 'speed': < 0 - SPEED_UNDEFINED |\n 1 - DYNAMIC |\n 2 - GIGABIT_1 |\n 3 - GIGABIT_10 |\n 4 - GIGABIT_25 |\n 5 - GIGABIT_40 |\n 6 - GIGABIT_100 |\n 7 - GIGABIT_400 |\n 8 - MEGABIT_2500 |\n 9 - MEGABIT_1250 >\n 'protocol': < 0 - PROTOCOL_UNDEFINED |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - GFAST |\n 6 - SERIAL |\n 7 - EPON |\n 8 - BITS >\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>container_attr\x3c/b>': { # type: ContainerComponentAttributes\n 'physical_label': <string>,\n }\n '<i>ONEOF specific\x3c/i>: <b>psu_attr\x3c/b>': { # type: PsuComponentAttributes\n 'supported_voltage': < 0 - SUPPORTED_VOLTAGE_UNDEFINED |\n 1 - V48 |\n 2 - V230 |\n 3 - V115 >\n }\n '<i>ONEOF specific\x3c/i>: <b>transceiver_attr\x3c/b>': { # type: TransceiverComponentsAttributes\n 'form_factor': < 0 - FORM_FACTOR_UNKNOWN |\n 1 - QSFP |\n 2 - QSFP_PLUS |\n 3 - QSFP28 |\n 4 - SFP |\n 5 - SFP_PLUS |\n 6 - XFP |\n 7 - CFP4 |\n 8 - CFP2 |\n 9 - CPAK |\n 10 - X2 |\n 11 - OTHER |\n 12 - CFP |\n 13 - CFP2_ACO |\n 14 - CFP2_DCO >\n 'trans_type': < 0 - TYPE_UNKNOWN |\n 1 - ETHERNET |\n 2 - GPON |\n 3 - XGPON |\n 4 - XGSPON |\n 5 - CPON |\n 6 - NG_PON2 |\n 7 - EPON >\n 'max_distance': <uint32>,\n 'max_distance_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'rx_wavelength': [ # list of:\n <uint32>,\n ]\n 'tx_wavelength': [ # list of:\n <uint32>,\n ]\n 'wavelength_scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n }\n }\n 'parent_rel_pos': <int32>,\n 'alias': <string>,\n 'asset_id': <string>,\n 'uri': { # type: Uri\n 'uri': <string>,\n }\n 'admin_state': < 0 - COMP_ADMIN_STATE_UNDEFINED |\n 1 - COMP_ADMIN_STATE_UNKNOWN |\n 2 - COMP_ADMIN_STATE_LOCKED |\n 3 - COMP_ADMIN_STATE_SHUTTING_DOWN |\n 4 - COMP_ADMIN_STATE_UNLOCKED >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: StartManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Management Service Start Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>StopManagingDevice\x3c/i> from <i>NativeHWManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StopManagingDeviceRequest\n 'name': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StopManagingDeviceResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Management Service Stop Managing Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetMetric\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: GetMetricRequest\n 'meta_data': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetMetricResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metric': { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Get Metric","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ListMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: ListMetricsResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'metrics': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service List Metrics","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>RPC <i>StreamMetrics\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>: <i>none\x3c/i>\x3c/p>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: Metric\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'metric_metadata': { # type: MetricMetaData\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'component_name': <string>,\n }\n 'value': { # type: ComponentSensorData\n 'value': <int32>,\n 'type': < 0 - VALUE_TYPE_UNDEFINED |\n 1 - VALUE_TYPE_OTHER |\n 2 - VALUE_TYPE_UNKNOWN |\n 3 - VALUE_TYPE_VOLTS_AC |\n 4 - VALUE_TYPE_VOLTS_DC |\n 5 - VALUE_TYPE_AMPERES |\n 6 - VALUE_TYPE_WATTS |\n 7 - VALUE_TYPE_HERTZ |\n 8 - VALUE_TYPE_CELSIUS |\n 9 - VALUE_TYPE_PERCENT_RH |\n 10 - VALUE_TYPE_RPM |\n 11 - VALUE_TYPE_CMM |\n 12 - VALUE_TYPE_TRUTH_VALUE |\n 13 - VALUE_TYPE_PERCENT |\n 14 - VALUE_TYPE_METERS |\n 15 - VALUE_TYPE_BYTES >\n 'scale': < 0 - VALUE_SCALE_UNDEFINED |\n 1 - VALUE_SCALE_YOCTO |\n 2 - VALUE_SCALE_ZEPTO |\n 3 - VALUE_SCALE_ATTO |\n 4 - VALUE_SCALE_FEMTO |\n 5 - VALUE_SCALE_PICO |\n 6 - VALUE_SCALE_NANO |\n 7 - VALUE_SCALE_MICRO |\n 8 - VALUE_SCALE_MILLI |\n 9 - VALUE_SCALE_UNITS |\n 10 - VALUE_SCALE_KILO |\n 11 - VALUE_SCALE_MEGA |\n 12 - VALUE_SCALE_GIGA |\n 13 - VALUE_SCALE_TERA |\n 14 - VALUE_SCALE_PETA |\n 15 - VALUE_SCALE_EXA |\n 16 - VALUE_SCALE_ZETTA |\n 17 - VALUE_SCALE_YOTTA >\n 'precision': <int32>,\n 'status': < 0 - SENSOR_STATUS_UNDEFINED |\n 1 - SENSOR_STATUS_OK |\n 2 - SENSOR_STATUS_UNAVAILABLE |\n 3 - SENSOR_STATUS_NONOPERATIONAL >\n 'units_display': <string>,\n 'timestamp': <google.protobuf.Timestamp>,\n 'value_update_rate': <uint32>,\n 'data_type': <string>,\n }\n }\n]\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Stream Metrics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateMetricsConfiguration\x3c/i> from <i>NativeMetricsManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict: <b>Note\x3c/b>: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: MetricsConfigurationRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n '<i>ONEOF operation\x3c/i>: <b>changes\x3c/b>': { # type: MetricsConfig\n 'metrics': [ # list of:\n { # type: MetricConfig\n 'metric_id': < 0 - METRIC_NAME_UNDEFINED |\n 1 - METRIC_FAN_SPEED |\n 100 - METRIC_CPU_TEMP |\n 101 - METRIC_CPU_USAGE_PERCENTAGE |\n 200 - METRIC_TRANSCEIVER_TEMP |\n 201 - METRIC_TRANSCEIVER_VOLTAGE |\n 202 - METRIC_TRANSCEIVER_BIAS |\n 203 - METRIC_TRANSCEIVER_RX_POWER |\n 204 - METRIC_TRANSCEIVER_TX_POWER |\n 205 - METRIC_TRANSCEIVER_WAVELENGTH |\n 300 - METRIC_DISK_TEMP |\n 301 - METRIC_DISK_CAPACITY |\n 302 - METRIC_DISK_USAGE |\n 303 - METRIC_DISK_USAGE_PERCENTAGE |\n 304 - METRIC_DISK_READ_WRITE_PERCENTAGE |\n 305 - METRIC_DISK_FAULTY_CELLS_PERCENTAGE |\n 400 - METRIC_RAM_TEMP |\n 401 - METRIC_RAM_CAPACITY |\n 402 - METRIC_RAM_USAGE |\n 403 - METRIC_RAM_USAGE_PERCENTAGE |\n 500 - METRIC_POWER_MAX |\n 501 - METRIC_POWER_USAGE |\n 502 - METRIC_POWER_USAGE_PERCENTAGE |\n 600 - METRIC_INNER_SURROUNDING_TEMP >\n 'is_configured': <bool>,\n 'poll_interval': <uint32>,\n }\n ]\n }\n '<i>ONEOF operation\x3c/i>: <b>reset_to_default\x3c/b>': <bool>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: MetricsConfigurationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Hw Metrics Mgmt Service Update Metrics Configuration","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>ActivateImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Activate Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>DownloadImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: DownloadImageRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'image_info': { # type: ImageInformation\n 'image': { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n 'image_install_script': <string>,\n 'image_url': <string>,\n 'sha256sum': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetSoftwareVersion\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: GetSoftwareVersionInformationResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'info': { # type: SoftwareVersionInformation\n 'active_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n 'standby_versions': [ # list of:\n { # type: ImageVersion\n 'image_name': <string>,\n 'version': <string>,\n }\n ]\n }\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Software Version","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>GetStartupConfigurationInfo\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: StartupConfigInfoRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n{ # type: StartupConfigInfoResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'config_url': <string>,\n 'version': <string>,\n 'reason_detail': <string>,\n}\n\x3c/pre>","matched":true,"name":"Sw Management Service Get Startup Configuration Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>RevertToStandbyImage\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: HardwareID\n 'uuid': { # type: Uuid\n 'uuid': <string>,\n }\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ImageStatus\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - ERROR_IN_REQUEST |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_IN_WRONG_STATE |\n 4 - INVALID_IMAGE |\n 5 - WRONG_IMAGE_CHECKSUM |\n 6 - OPERATION_ALREADY_IN_PROGRESS |\n 7 - UNKNOWN_DEVICE |\n 8 - DEVICE_NOT_REACHABLE >\n 'state': < 0 - UNDEFINED_STATE |\n 1 - COPYING_IMAGE |\n 2 - INSTALLING_IMAGE |\n 3 - COMMITTING_IMAGE |\n 4 - REBOOTING_DEVICE |\n 5 - UPGRADE_COMPLETE |\n 6 - UPGRADE_FAILED |\n 7 - ACTIVATION_COMPLETE |\n 8 - ACTIVATION_FAILED >\n 'description': <string>,\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Revert To Standby Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>RPC <i>UpdateStartupConfiguration\x3c/i> from <i>NativeSoftwareManagementService\x3c/i>.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>param_dict:\x3c/li>\n\x3c/ul>\n<pre>\n{ # type: ConfigRequest\n 'device_uuid': { # type: Uuid\n 'uuid': <string>,\n }\n 'config_url': <string>,\n}\n\x3c/pre>\n<p><b>Named parameters\x3c/b>:\x3c/p>\n<ul>\n<li>return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>return_defaults: <bool> or <string>; Whether or not to return the default values. Default: <i>${FALSE}\x3c/i> or <i>false\x3c/i>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords <i>Connection Open\x3c/i> and <i>Connection Parameters Set\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>:\x3c/p>\n<pre>\n[ # list of:\n { # type: ConfigResponse\n 'status': < 0 - UNDEFINED_STATUS |\n 1 - OK_STATUS |\n 2 - ERROR_STATUS >\n 'reason': < 0 - UNDEFINED_REASON |\n 1 - UNKNOWN_DEVICE |\n 2 - INTERNAL_ERROR |\n 3 - DEVICE_UNREACHABLE >\n 'reason_detail': <string>,\n }\n]\n\x3c/pre>","matched":true,"name":"Sw Management Service Update Startup Configuration","shortdoc":"","tags":[]}],"name":"grpc_robot.Dmi","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/dmi_tools.html b/docs/dmi_tools.html
new file mode 100644
index 0000000..35a9f71
--- /dev/null
+++ b/docs/dmi_tools.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Tools for the device-management-interface, e.g decoding / conversions.\x3c/p>","generated":"2021-07-14 13:19:25","inits":[],"keywords":[{"args":["bytestring","return_enum_integer=false","return_defaults=false","human_readable_timestamps=true"],"doc":"<p>Converts bytes to a Event as defined in <i>message Event\x3c/i> from hw_events_mgmt_service.proto\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.\x3c/li>\n<li>return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>false\x3c/i>.\x3c/li>\n<li>return_defaults: <string> or <bool>; Whether or not to return the default values. Default: <i>false\x3c/i>.\x3c/li>\n<li>human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: <i>true\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: A dictionary with same structure as the <i>event\x3c/i> key from the return dictionary of keyword <i>Hw Event Mgmt Service List Events\x3c/i>.\x3c/p>\n<p><b>Example\x3c/b>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Import Library\x3c/td>\n<td>grpc_robot.DmiTools\x3c/td>\n<td>WITH NAME\x3c/td>\n<td>dmi_tools\x3c/td>\n\x3c/tr>\n<tr>\n<td>${kafka_records}\x3c/td>\n<td>kafka.Records Get\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${kafka_record}\x3c/td>\n<td>IN\x3c/td>\n<td>@{kafka_records}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>${event}\x3c/td>\n<td>dmi_tools.Hw Events Mgmt Decode Event\x3c/td>\n<td>${kafka_record}[message]\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Log\x3c/td>\n<td>${event}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Hw Events Mgmt Decode Event","shortdoc":"Converts bytes to a Event as defined in _message Event_ from hw_events_mgmt_service.proto","tags":[]},{"args":["bytestring","return_enum_integer=false","return_defaults=false","human_readable_timestamps=true"],"doc":"<p>Converts bytes to a Metric as defined in <i>message Metric\x3c/i> from hw_metrics_mgmt_service.proto\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.\x3c/li>\n<li>return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>false\x3c/i>.\x3c/li>\n<li>return_defaults: <string> or <bool>; Whether or not to return the default values. Default: <i>false\x3c/i>.\x3c/li>\n<li>human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: <i>true\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: A dictionary with same structure as the <i>metric\x3c/i> key from the return dictionary of keyword <i>Hw Metrics Mgmt Service Get Metric\x3c/i>.\x3c/p>\n<p><b>Example\x3c/b>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Import Library\x3c/td>\n<td>grpc_robot.DmiTools\x3c/td>\n<td>WITH NAME\x3c/td>\n<td>dmi_tools\x3c/td>\n\x3c/tr>\n<tr>\n<td>${kafka_records}\x3c/td>\n<td>kafka.Records Get\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${kafka_record}\x3c/td>\n<td>IN\x3c/td>\n<td>@{kafka_records}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>${metric}\x3c/td>\n<td>dmi_tools.Hw Metrics Mgmt Decode Metric\x3c/td>\n<td>${kafka_record}[message]\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Log\x3c/td>\n<td>${metric}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Hw Metrics Mgmt Decode Metric","shortdoc":"Converts bytes to a Metric as defined in _message Metric_ from hw_metrics_mgmt_service.proto","tags":[]}],"name":"grpc_robot.DmiTools","named_args":true,"scope":"TEST","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/voltha_4_0_13.html b/docs/voltha_4_0_13.html
new file mode 100644
index 0000000..865cad4
--- /dev/null
+++ b/docs/voltha_4_0_13.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>voltha\x3c/td>\n<td>voltha-protos\x3c/td>\n<td>4.0.13\x3c/td>\n<td>grpc_robot.Voltha\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:19","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Extension Get Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Extension Set Ext Value","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Hw Management Service Get Health Status","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Activate Onu","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Collect Statistics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Create Traffic Queues","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Create Traffic Schedulers","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Deactivate Onu","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Delete Group","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Delete Onu","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Disable Olt","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Disable Pon If","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Enable Indication","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Enable Pon If","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Flow Add","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Flow Remove","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Device Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Gem Port Statistics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Logical Onu Distance","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Logical Onu Distance Zero","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Onu Statistics","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Heartbeat Check","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Omci Msg Out","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Onu Itu Pon Alarm Set","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Onu Packet Out","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Perform Group Operation","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Reboot","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Reenable Olt","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Remove Traffic Queues","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Remove Traffic Schedulers","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Uplink Packet Out","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Get Device Info","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Get Stats","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Receive Frames","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Send Frame","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Update Flow Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Activate Image Update","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Cancel Image Download","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Create Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Create Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Delete Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Delete Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Disable Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Disable Logical Device Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Disable Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Enable Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Enable Logical Device Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Enable Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Force Delete Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Alarm Device Data","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Core Instance","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Device Group","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Device Type","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Image Download","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Image Download Status","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Images","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Logical Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Logical Device Port","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Membership","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Mib Device Data","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Voltha","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Adapters","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Core Instances","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Flow Groups","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Flows","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Groups","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Ids","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Pm Configs","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Ports","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Types","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Event Filters","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Image Downloads","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Flow Groups","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Flows","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Meters","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Ports","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Devices","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Reboot Device","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Receive Change Events","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Receive Packets In","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Reconcile Devices","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Revert Image Update","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Self Test","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Set Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Simulate Alarm","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Start Omci Test Action","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Stream Packets Out","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Subscribe","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Device Pm Configs","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Logical Device Flow Group Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Logical Device Flow Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Logical Device Meter Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Membership","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>voltha-protos\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Voltha Version Get","shortdoc":"","tags":[]}],"name":"grpc_robot.Voltha","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/voltha_4_2_0.html b/docs/voltha_4_2_0.html
new file mode 100644
index 0000000..24e4c31
--- /dev/null
+++ b/docs/voltha_4_2_0.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>This library is intended to supported different Protocol Buffer definitions. Precondition is that python files generated from Protocol Buffer files are available in a pip package which must be installed before the library is used.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Supported device\x3c/td>\n<td>Pip package\x3c/td>\n<td>Pip package version\x3c/td>\n<td>Library Name\x3c/td>\n\x3c/tr>\n<tr>\n<td>voltha\x3c/td>\n<td>voltha-protos\x3c/td>\n<td>4.0.13\x3c/td>\n<td>grpc_robot.Voltha\x3c/td>\n\x3c/tr>\n\x3c/table>","generated":"2021-07-14 13:19:23","inits":[],"keywords":[{"args":[],"doc":"<p>Closes the connection to the gRPC host.\x3c/p>","matched":true,"name":"Connection Close","shortdoc":"","tags":[]},{"args":["host","port","**kwargs"],"doc":"<p>Opens a connection to the gRPC host.\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>host: <string>|<IP address>; Name or IP address of the gRPC host.\x3c/li>\n<li>port: <number>; TCP port of the gRPC host.\x3c/li>\n\x3c/ul>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Open","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieves the connection parameters for the gRPC channel.\x3c/p>\n<p><b>Return\x3c/b>: A dictionary with the keys:\x3c/p>\n<ul>\n<li>timeout\x3c/li>\n\x3c/ul>","matched":true,"name":"Connection Parameters Get","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>Sets the gRPC channel connection parameters.\x3c/p>\n<p><b>Named Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>timeout: <number>; Timeout in seconds for a gRPC response.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: Same dictionary as the keyword <i>Connection Parameter Get\x3c/i> with the values before they got changed.\x3c/p>","matched":true,"name":"Connection Parameters Set","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Extension Get Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Extension Set Ext Value","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Returns the list of keyword names\x3c/p>","matched":true,"name":"Get Keyword Names","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Hw Management Service Get Health Status","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently running library instance.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Library Version Get","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Activate Onu","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Collect Statistics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Create Traffic Queues","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Create Traffic Schedulers","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Deactivate Onu","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Delete Group","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Delete Onu","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Disable Olt","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Disable Pon If","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Enable Indication","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Enable Pon If","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Flow Add","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Flow Remove","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Device Info","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Gem Port Statistics","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Logical Onu Distance","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Logical Onu Distance Zero","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Get Onu Statistics","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Heartbeat Check","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Omci Msg Out","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Onu Itu Pon Alarm Set","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Onu Packet Out","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Perform Group Operation","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Reboot","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Reenable Olt","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Remove Traffic Queues","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Remove Traffic Schedulers","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Open Olt Uplink Packet Out","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Get Device Info","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Get Stats","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Receive Frames","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Send Frame","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Pon Sim Update Flow Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Activate Image Update","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Cancel Image Download","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Create Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Create Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Delete Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Delete Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Disable Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Disable Logical Device Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Disable Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Download Image","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Enable Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Enable Logical Device Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Enable Port","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Force Delete Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Alarm Device Data","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Core Instance","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Device Group","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Device Type","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Image Download","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Image Download Status","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Images","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Logical Device","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Logical Device Port","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Membership","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Mib Device Data","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Get Voltha","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Adapters","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Core Instances","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Flow Groups","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Flows","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Groups","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Ids","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Pm Configs","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Ports","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Device Types","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Devices","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Event Filters","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Image Downloads","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Flow Groups","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Flows","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Meters","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Device Ports","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service List Logical Devices","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Reboot Device","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Receive Change Events","shortdoc":"","tags":[]},{"args":["**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Receive Packets In","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Reconcile Devices","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Revert Image Update","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Self Test","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Set Ext Value","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Simulate Alarm","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Start Omci Test Action","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Stream Packets Out","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Subscribe","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Device Pm Configs","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Event Filter","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Logical Device Flow Group Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Logical Device Flow Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Logical Device Meter Table","shortdoc":"","tags":[]},{"args":["param_dict","**kwargs"],"doc":"<p>no documentation available\x3c/p>","matched":true,"name":"Voltha Service Update Membership","shortdoc":"","tags":[]},{"args":[],"doc":"<p>Retrieve the version of the currently used python module <i>voltha-protos\x3c/i>.\x3c/p>\n<p><b>Return\x3c/b>: version string consisting of three dot-separated numbers (x.y.z)\x3c/p>","matched":true,"name":"Voltha Version Get","shortdoc":"","tags":[]}],"name":"grpc_robot.Voltha","named_args":true,"scope":"SUITE","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/docs/voltha_tools.html b/docs/voltha_tools.html
new file mode 100644
index 0000000..bb67676
--- /dev/null
+++ b/docs/voltha_tools.html
@@ -0,0 +1,1034 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Pragma" content="no-cache">
+<meta http-equiv="Expires" content="-1">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta content="Robot Framework 3.2.2 (Python 3.8.10 on linux)" name="Generator">
+<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqAAAAAAAAAAAAAAAAAAAALIAAAD/AAAA4AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA4AAAAP8AAACxAAAAAAAAAKYAAAD/AAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/AAAA/wAAAKkAAAD6AAAAzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN8AAAD/AAAA+gAAAMMAAAAAAAAAAgAAAGsAAABrAAAAawAAAGsAAABrAAAAawAAAGsAAABrAAAADAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANEAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAFAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAADwAAAB8AAAAAAAAAGAAAABcAAAAAAAAAH8AAABKAAAAAAAAAAAAAAAAAAAA2gAAAP8AAAD6AAAAwwAAAAAAAADCAAAA/wAAACkAAADqAAAA4QAAAAAAAAD7AAAA/wAAALAAAAAGAAAAAAAAANoAAAD/AAAA+gAAAMMAAAAAAAAAIwAAAP4AAAD/AAAA/wAAAGAAAAAAAAAAAAAAAMkAAAD/AAAAigAAAAAAAADaAAAA/wAAAPoAAADDAAAAAAAAAAAAAAAIAAAAcAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAA2gAAAP8AAAD7AAAAywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4AAAD/AAAAqwAAAP8AAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALIAAAD/AAAAsgAAAAAAAAC5AAAA/wAAAMoAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMkAAAD/AAAAvAAAAAAAAAAAAAAAAAAAAKwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArQAAAAAAAAAAwAMAAIABAAAf+AAAP/wAAD/8AAAgBAAAP/wAAD/8AAA//AAAJIwAADHEAAA//AAAP/wAAB/4AACAAQAAwAMAAA==">
+<style media="all" type="text/css">
+body {
+ background: white;
+ color: black;
+ font-size: small;
+ font-family: sans-serif;
+ padding: 0 0.5em;
+}
+.metadata th {
+ text-align: left;
+ padding-right: 1em;
+}
+a.name, span.name {
+ font-style: italic;
+}
+a, a:link, a:visited {
+ color: #c30;
+}
+a img {
+ border: 1px solid #c30 !important;
+}
+a:hover, a:active {
+ text-decoration: underline;
+ color: black;
+}
+a:hover {
+ text-decoration: underline !important;
+}
+.shortcuts {
+ margin: 1em 0;
+ font-size: 0.9em;
+}
+.shortcuts a {
+ display: inline-block;
+ text-decoration: none;
+ white-space: nowrap;
+ color: black;
+}
+.shortcuts a::first-letter {
+ font-weight: bold;
+ letter-spacing: 0.1em;
+}
+.normal-first-letter::first-letter {
+ font-weight: normal !important;
+ letter-spacing: 0 !important;
+}
+.shortcut-list-toggle, .tag-list-toggle {
+ margin-bottom: 1em;
+ font-size: 0.9em;
+}
+input.switch {
+ display: none;
+}
+.slider {
+ background-color: grey;
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ height: 18px;
+ width: 36px;
+}
+.slider:before {
+ background-color: white;
+ content: "";
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ height: 12px;
+ width: 12px;
+}
+input.switch:checked + .slider::before {
+ background-color: white;
+ left: 21px;
+}
+.keywords {
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ empty-cells: show;
+ margin: 0.3em 0;
+ width: 100%;
+}
+.keywords th, .keywords td {
+ border: 1px solid #ccc;
+ padding: 0.2em;
+ vertical-align: top;
+}
+.keywords th {
+ background: #ddd;
+ color: black;
+}
+.kw {
+ width: 15%;
+}
+.args {
+ width: 25%;
+}
+.tags {
+ width: 10%;
+}
+.doc {
+ width: 60%;
+}
+td.kw a {
+ color: inherit;
+ text-decoration: none;
+ font-weight: bold;
+}
+.args span {
+ font-style: italic;
+ padding: 0 0.1em;
+}
+.tags a {
+ color: inherit;
+ text-decoration: none;
+ padding: 0 0.1em;
+}
+.footer {
+ font-size: 0.9em;
+}
+/* Docs originating from HTML and reST are wrapped to divs. */
+.doc div > *:first-child {
+ margin-top: 0;
+}
+.doc div > *:last-child { /* Does not work with IE8. */
+ margin-bottom: 0;
+}
+#search, #open-search {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+ z-index: 1000;
+}
+#search {
+ width: 30em;
+ display: none;
+}
+#open-search {
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ width: 40px;
+ height: 40px;
+ background-color: white;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAY5JREFUSImt1LtrFGEUBfCfURsFHwEr29UNkS3MFklrQK0EIYUk/5IQ0FSmCCKW1mpAommToCKoK+lsLUKeSFbXFLuT3B13Hjt64INvOPeec+fOnUs2mpjHBrbRwQE+YQFTObm5qGMZf0qct7gxjPgM9kqKJ+cAs2XFf4fEX3iOe7iKsxjFHTxFO8R2ikzqqcq/oVFQUANfUm8ynhUce97qVVoGo/gaclcGBTVDQDuvigw09Lfrr+maD+TSkOIJngWNx2lyI5C3KxrcDRof0+R2IC9XNLgSNPbTZDKa7YricFr/v3EqIUZ0xxPO4FxFg0vhnoz7scFmICcqGjTDvRWJEayG57mKBg/C/U2anHDSu5+oDSlex6GTlTE2KOhVMPmACyXFL+qOZZL7Xf/3OMY17KZMrheI13px6e26nmVyX3eDxnYt4lav0qTiaTzp8VkrPNdkNyOpkyM4lEkNL0uK/CjgXw8ySHATD7GGLd0/fgfv8QiTOI93BSb/jCKT/4Isk1ZOTiWTF0H8M8aPANvFyARlADGFAAAAAElFTkSuQmCC);
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHZpZXdCb3g9IjAgMCA4IDgiPgogIDxwYXRoIGQ9Ik0zLjUgMGMtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNWMuNTkgMCAxLjE3LS4xNCAxLjY2LS40MWExIDEgMCAwIDAgLjEzLjEzbDEgMWExLjAyIDEuMDIgMCAxIDAgMS40NC0xLjQ0bC0xLTFhMSAxIDAgMCAwLS4xNi0uMTNjLjI3LS40OS40NC0xLjA2LjQ0LTEuNjYgMC0xLjkzLTEuNTctMy41LTMuNS0zLjV6bTAgMWMxLjM5IDAgMi41IDEuMTEgMi41IDIuNSAwIC42Ni0uMjQgMS4yNy0uNjYgMS43Mi0uMDEuMDEtLjAyLjAyLS4wMy4wM2ExIDEgMCAwIDAtLjEzLjEzYy0uNDQuNC0xLjA0LjYzLTEuNjkuNjMtMS4zOSAwLTIuNS0xLjExLTIuNS0yLjVzMS4xMS0yLjUgMi41LTIuNXoiCiAgLz4KPC9zdmc+), none;
+ background-size: 24px 24px;
+}
+#open-search:hover {
+ background-color: #ccc;
+}
+fieldset {
+ background: white;
+ border: 2px solid #ccc;
+ border-radius: 4px;
+ padding: 6px 8px;
+}
+fieldset fieldset {
+ border: 1px solid #ccc;
+ margin: 4px 0;
+}
+#search-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ letter-spacing: 1px;
+}
+#search-string {
+ box-sizing: border-box;
+ width: 100%;
+}
+#hide-unmatched {
+ margin: 0.5em 0 0 1em;
+}
+#search-buttons {
+ float: right;
+}
+.highlight {
+ background: yellow;
+}
+.no-match {
+ color: gray !important;
+}
+tr.no-match.hide-unmatched {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+/* Pygments 'default' style sheet. Generated with Pygments 2.1.3 using:
+ pygmentize -S default -f html -a .code > src/robot/htmldata/libdoc/pygments.css
+*/
+.code .hll { background-color: #ffffcc }
+.code { background: #f8f8f8; }
+.code .c { color: #408080; font-style: italic } /* Comment */
+.code .err { border: 1px solid #FF0000 } /* Error */
+.code .k { color: #008000; font-weight: bold } /* Keyword */
+.code .o { color: #666666 } /* Operator */
+.code .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.code .cp { color: #BC7A00 } /* Comment.Preproc */
+.code .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.code .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.code .cs { color: #408080; font-style: italic } /* Comment.Special */
+.code .gd { color: #A00000 } /* Generic.Deleted */
+.code .ge { font-style: italic } /* Generic.Emph */
+.code .gr { color: #FF0000 } /* Generic.Error */
+.code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.code .gi { color: #00A000 } /* Generic.Inserted */
+.code .go { color: #888888 } /* Generic.Output */
+.code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.code .gs { font-weight: bold } /* Generic.Strong */
+.code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.code .gt { color: #0044DD } /* Generic.Traceback */
+.code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.code .kp { color: #008000 } /* Keyword.Pseudo */
+.code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.code .kt { color: #B00040 } /* Keyword.Type */
+.code .m { color: #666666 } /* Literal.Number */
+.code .s { color: #BA2121 } /* Literal.String */
+.code .na { color: #7D9029 } /* Name.Attribute */
+.code .nb { color: #008000 } /* Name.Builtin */
+.code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.code .no { color: #880000 } /* Name.Constant */
+.code .nd { color: #AA22FF } /* Name.Decorator */
+.code .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.code .nf { color: #0000FF } /* Name.Function */
+.code .nl { color: #A0A000 } /* Name.Label */
+.code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.code .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.code .nv { color: #19177C } /* Name.Variable */
+.code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.code .w { color: #bbbbbb } /* Text.Whitespace */
+.code .mb { color: #666666 } /* Literal.Number.Bin */
+.code .mf { color: #666666 } /* Literal.Number.Float */
+.code .mh { color: #666666 } /* Literal.Number.Hex */
+.code .mi { color: #666666 } /* Literal.Number.Integer */
+.code .mo { color: #666666 } /* Literal.Number.Oct */
+.code .sb { color: #BA2121 } /* Literal.String.Backtick */
+.code .sc { color: #BA2121 } /* Literal.String.Char */
+.code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.code .s2 { color: #BA2121 } /* Literal.String.Double */
+.code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.code .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.code .sx { color: #008000 } /* Literal.String.Other */
+.code .sr { color: #BB6688 } /* Literal.String.Regex */
+.code .s1 { color: #BA2121 } /* Literal.String.Single */
+.code .ss { color: #19177C } /* Literal.String.Symbol */
+.code .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.code .vc { color: #19177C } /* Name.Variable.Class */
+.code .vg { color: #19177C } /* Name.Variable.Global */
+.code .vi { color: #19177C } /* Name.Variable.Instance */
+.code .il { color: #666666 } /* Literal.Number.Integer.Long */
+</style>
+<style media="print" type="text/css">
+body {
+ margin: 0;
+ padding: 0;
+ font-size: 8pt;
+}
+a {
+ text-decoration: none;
+}
+#search, #open-search {
+ display: none;
+}
+</style>
+<style media="all" type="text/css">
+#javascript-disabled {
+ width: 600px;
+ margin: 100px auto 0 auto;
+ padding: 20px;
+ color: black;
+ border: 1px solid #ccc;
+ background: #eee;
+}
+#javascript-disabled h1 {
+ width: 100%;
+ float: none;
+}
+#javascript-disabled ul {
+ font-size: 1.2em;
+}
+#javascript-disabled li {
+ margin: 0.5em 0;
+}
+#javascript-disabled b {
+ font-style: italic;
+}
+</style>
+<style media="all" type="text/css">
+.doc > * {
+ margin: 0.7em 1em 0.1em 1em;
+ padding: 0;
+}
+.doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 {
+ margin: 0.7em 0 0.1em 0;
+}
+.doc > *:first-child {
+ margin-top: 0.1em;
+}
+.doc table {
+ border: 1px solid #ccc;
+ background: transparent;
+ border-collapse: collapse;
+ empty-cells: show;
+ font-size: 0.9em;
+}
+.doc table th, .doc table td {
+ border: 1px solid #ccc;
+ background: transparent;
+ padding: 0.1em 0.3em;
+ height: 1.2em;
+}
+.doc table th {
+ text-align: center;
+ letter-spacing: 0.1em;
+}
+.doc pre {
+ font-size: 1.1em;
+ letter-spacing: 0.05em;
+ background: #f4f4f4;
+}
+.doc code {
+ padding: 0 0.2em;
+ letter-spacing: 0.05em;
+ background: #eee;
+}
+.doc li {
+ list-style-position: inside;
+ list-style-type: square;
+}
+.doc img {
+ border: 1px solid #ccc;
+}
+.doc hr {
+ background: #ccc;
+ height: 1px;
+ border: 0;
+}
+</style>
+<script type="text/javascript">
+storage = function () {
+ var prefix = 'robot-framework-';
+ var storage;
+ function init(user) {
+ prefix += user + '-';
+ storage = getStorage();
+ }
+ function getStorage() {
+ // Use localStorage if it's accessible, normal object otherwise.
+ // Inspired by https://stackoverflow.com/questions/11214404
+ try {
+ localStorage.setItem(prefix, prefix);
+ localStorage.removeItem(prefix);
+ return localStorage;
+ } catch (exception) {
+ return {};
+ }
+ }
+ function get(name, defaultValue) {
+ var value = storage[prefix + name];
+ if (typeof value === 'undefined')
+ return defaultValue;
+ return value;
+ }
+ function set(name, value) {
+ storage[prefix + name] = value;
+ }
+ return {init: init, get: get, set: set};
+}();
+</script>
+<script type="text/javascript">
+window.util = function () {
+ function map(elems, func) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ ret[i] = func(elems[i]);
+ }
+ return ret;
+ }
+ function filter(elems, predicate) {
+ var ret = [];
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (predicate(elems[i]))
+ ret.push(elems[i]);
+ }
+ return ret;
+ }
+ function all(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (!elems[i])
+ return false;
+ }
+ return true;
+ }
+ function any(elems) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i])
+ return elems[i];
+ }
+ return false;
+ }
+ function contains(elems, e) {
+ for (var i = 0, len = elems.length; i < len; i++) {
+ if (elems[i] == e)
+ return true;
+ }
+ return false;
+ }
+ function last(items) {
+ return items[items.length-1];
+ }
+ function unescape(string) {
+ return string.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&');
+ }
+ function escape(string) {
+ return string.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
+ }
+ function normalize(string) {
+ return string.toLowerCase().replace(/ /g, '').replace(/_/g, '');
+ }
+ function regexpEscape(string) {
+ return string.replace(/[-[\]{}()+?*.,\\^$|#]/g, "\\$&");
+ }
+ function Matcher(pattern) {
+ pattern = regexpEscape(normalize(pattern));
+ var rePattern = '^' + pattern.replace(/\\\?/g, '.').replace(/\\\*/g, '[\\s\\S]*') + '$';
+ var regexp = new RegExp(rePattern);
+ function matches(string) {
+ return regexp.test(normalize(string));
+ }
+ return {
+ matches: matches,
+ matchesAny: function (strings) {
+ for (var i = 0, len = strings.length; i < len; i++)
+ if (matches(strings[i]))
+ return true;
+ return false;
+ }
+ };
+ }
+ function formatParentName(item) {
+ var parentName = item.fullName.slice(0, item.fullName.length - item.name.length);
+ return parentName.replace(/\./g, ' . ');
+ }
+ function timeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return formatTime(date.getHours(), date.getMinutes(),
+ date.getSeconds(), date.getMilliseconds());
+ }
+ function dateFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return padTo(date.getFullYear(), 4) +
+ padTo(date.getMonth() + 1, 2) +
+ padTo(date.getDate(), 2);
+ }
+ function dateTimeFromDate(date) {
+ if (!date)
+ return 'N/A';
+ return dateFromDate(date) + ' ' + timeFromDate(date);
+ }
+ function formatTime(hours, minutes, seconds, milliseconds) {
+ return padTo(hours, 2) + ':' +
+ padTo(minutes, 2) + ':' +
+ padTo(seconds, 2) + '.' +
+ padTo(milliseconds, 3);
+ }
+ function formatElapsed(elapsed) {
+ var millis = elapsed;
+ var hours = Math.floor(millis / (60 * 60 * 1000));
+ millis -= hours * 60 * 60 * 1000;
+ var minutes = Math.floor(millis / (60 * 1000));
+ millis -= minutes * 60 * 1000;
+ var seconds = Math.floor(millis / 1000);
+ millis -= seconds * 1000;
+ return formatTime(hours, minutes, seconds, millis);
+ }
+ function padTo(number, len) {
+ var numString = number + "";
+ while (numString.length < len) numString = "0" + numString;
+ return numString;
+ }
+ function timestamp(millis) {
+ // used also by tools that do not set window.output.baseMillis
+ var base = window.output ? window.output.baseMillis : 0;
+ return new Date(base + millis);
+ }
+ function createGeneratedString(timestamp) {
+ var date = new Date(timestamp);
+ var dt = dateTimeFromDate(date).slice(0, 17); // drop millis
+ var offset = date.getTimezoneOffset();
+ var sign = offset > 0 ? '-' : '+';
+ var hh = Math.floor(Math.abs(offset) / 60);
+ var mm = Math.abs(offset) % 60;
+ return dt + ' UTC' + sign + padTo(hh, 2) + ':' + padTo(mm, 2);
+ }
+ function createGeneratedAgoString(timestamp) {
+ function timeString(time, shortUnit) {
+ var unit = {y: 'year', d: 'day', h: 'hour', m: 'minute',
+ s: 'second'}[shortUnit];
+ var end = time == 1 ? ' ' : 's ';
+ return time + ' ' + unit + end;
+ }
+ function compensateLeapYears(days, years) {
+ // Not a perfect algorithm but ought to be enough
+ return days - Math.floor(years / 4);
+ }
+ var generated = Math.round(timestamp / 1000);
+ var current = Math.round(new Date().getTime() / 1000);
+ var elapsed = current - generated;
+ var prefix = '';
+ if (elapsed < 0) {
+ prefix = '- ';
+ elapsed = Math.abs(elapsed);
+ }
+ var secs = elapsed % 60;
+ var mins = Math.floor(elapsed / 60) % 60;
+ var hours = Math.floor(elapsed / (60*60)) % 24;
+ var days = Math.floor(elapsed / (60*60*24)) % 365;
+ var years = Math.floor(elapsed / (60*60*24*365));
+ if (years) {
+ days = compensateLeapYears(days, years);
+ return prefix + timeString(years, 'y') + timeString(days, 'd');
+ } else if (days) {
+ return prefix + timeString(days, 'd') + timeString(hours, 'h');
+ } else if (hours) {
+ return prefix + timeString(hours, 'h') + timeString(mins, 'm');
+ } else if (mins) {
+ return prefix + timeString(mins, 'm') + timeString(secs, 's');
+ } else {
+ return prefix + timeString(secs, 's');
+ }
+ }
+ function parseQueryString(query) {
+ var result = {};
+ if (!query)
+ return result;
+ var params = query.split('&');
+ var parts;
+ function decode(item) {
+ return decodeURIComponent(item.replace('+', ' '));
+ }
+ for (var i = 0, len = params.length; i < len; i++) {
+ parts = params[i].split('=');
+ result[decode(parts.shift())] = decode(parts.join('='));
+ }
+ return result;
+ }
+ return {
+ map: map,
+ filter: filter,
+ all: all,
+ any: any,
+ contains: contains,
+ last: last,
+ escape: escape,
+ unescape: unescape,
+ normalize: normalize,
+ regexpEscape: regexpEscape,
+ Matcher: Matcher,
+ formatParentName: formatParentName,
+ timeFromDate: timeFromDate,
+ dateFromDate: dateFromDate,
+ dateTimeFromDate: dateTimeFromDate,
+ formatElapsed: formatElapsed,
+ timestamp: timestamp,
+ createGeneratedString: createGeneratedString,
+ createGeneratedAgoString: createGeneratedAgoString,
+ parseQueryString: parseQueryString
+ };
+}();
+</script>
+<script type="text/javascript">
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Templates Plugin 1.0.0pre
+ * http://github.com/jquery/jquery-tmpl
+ * Requires jQuery 1.4.2
+ *
+ * Copyright Software Freedom Conservancy, Inc.
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ */
+(function(a){var r=a.fn.domManip,d="_tmplitem",q=/^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h<m;h++){c=h;k=(h>0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i<j&&!(f=a.data(h[i++],"tmplItem")));if(f&&c)g[2]=function(b){a.tmpl.afterManip(this,b,k)};r.apply(this,g)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var i,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(j(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h==="function")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);i=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(j(c,null,i)):i},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,"tmplItem"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b==="string")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,"tmpl")||a.data(b,"tmpl",o(b.innerHTML));return typeof c==="string"?(a.template[c]=b):b}return c?typeof c!=="string"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(""+a).split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e<p;e++){if((k=o[e]).nodeType!==1)continue;j=k.getElementsByTagName("*");for(h=j.length-1;h>=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
+</script>
+<script type="text/javascript">
+/*
+ * jQuery Highlight plugin
+ *
+ * Based on highlight v3 by Johann Burkard
+ * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
+ *
+ * Copyright (c) 2009 Bartek Szopka
+ *
+ * Licensed under MIT license.
+ */
+jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
+</script>
+<script type="text/javascript">
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Tools for the voltha, e.g decoding / conversions.\x3c/p>","generated":"2021-07-14 13:19:26","inits":[],"keywords":[{"args":["bytestring","return_enum_integer=false","return_defaults=false","human_readable_timestamps=true"],"doc":"<p>Converts bytes to an Event as defined in <i>message Event\x3c/i> from events.proto\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.\x3c/li>\n<li>return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>false\x3c/i>.\x3c/li>\n<li>return_defaults: <string> or <bool>; Whether or not to return the default values. Default: <i>false\x3c/i>.\x3c/li>\n<li>human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: <i>true\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: A dictionary with <i>event\x3c/i> structure.\x3c/p>\n<p><b>Example\x3c/b>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Import Library\x3c/td>\n<td>grpc_robot.VolthaTools\x3c/td>\n<td>WITH NAME\x3c/td>\n<td>voltha_tools\x3c/td>\n\x3c/tr>\n<tr>\n<td>${kafka_records}\x3c/td>\n<td>kafka.Records Get\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${kafka_record}\x3c/td>\n<td>IN\x3c/td>\n<td>@{kafka_records}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>${event}\x3c/td>\n<td>voltha_tools.Events Decode Event\x3c/td>\n<td>${kafka_record}[message]\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Log\x3c/td>\n<td>${event}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Events Decode Event","shortdoc":"Converts bytes to an Event as defined in _message Event_ from events.proto","tags":[]},{"args":["bytestring","return_enum_integer=false","return_defaults=false","human_readable_timestamps=true"],"doc":"<p>Converts bytes to an resource instance as defined in <i>message ResourceInstance\x3c/i> from tech_profile.proto\x3c/p>\n<p><b>Parameters\x3c/b>:\x3c/p>\n<ul>\n<li>bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.\x3c/li>\n<li>return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: <i>false\x3c/i>.\x3c/li>\n<li>return_defaults: <string> or <bool>; Whether or not to return the default values. Default: <i>false\x3c/i>.\x3c/li>\n<li>human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: <i>true\x3c/i>.\x3c/li>\n\x3c/ul>\n<p><b>Return\x3c/b>: A dictionary with <i>event\x3c/i> structure.\x3c/p>\n<p><b>Example\x3c/b>:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Import Library\x3c/td>\n<td>grpc_robot.VolthaTools\x3c/td>\n<td>WITH NAME\x3c/td>\n<td>voltha_tools\x3c/td>\n\x3c/tr>\n<tr>\n<td>${kafka_records}\x3c/td>\n<td>kafka.Records Get\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${kafka_record}\x3c/td>\n<td>IN\x3c/td>\n<td>@{kafka_records}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>${event}\x3c/td>\n<td>voltha_tools. Tech Profile Decode Resource Instance\x3c/td>\n<td>${kafka_record}[message]\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Log\x3c/td>\n<td>${event}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Tech Profile Decode Resource Instance","shortdoc":"Converts bytes to an resource instance as defined in _message ResourceInstance_ from tech_profile.proto","tags":[]}],"name":"grpc_robot.VolthaTools","named_args":true,"scope":"TEST","version":"2.9.3"};
+</script>
+<title></title>
+</head>
+<body>
+
+<div id="javascript-disabled">
+ <h1>Opening library documentation failed</h1>
+ <ul>
+ <li>Verify that you have <b>JavaScript enabled</b> in your browser.</li>
+ <li>Make sure you are using a <b>modern enough browser</b>. If using Internet Explorer, version 8 or newer is required.</li>
+ <li>Check are there messages in your browser's <b>JavaScript error log</b>. Please report the problem if you suspect you have encountered a bug.</li>
+ </ul>
+</div>
+
+<script type="text/javascript">
+ // Not using jQuery here for speed and to support ancient browsers.
+ document.getElementById('javascript-disabled').style.display = 'none';
+</script>
+
+<script type="text/javascript">
+ $(document).ready(function() {
+ parseTemplates();
+ document.title = libdoc.name;
+ storage.init('libdoc');
+ renderTemplate('base', libdoc, $('body'));
+ if (libdoc.inits.length) {
+ renderTemplate('importing', libdoc);
+ }
+ renderTemplate('shortcuts', libdoc);
+ initShortcutListStyle('shortcut', libdoc.keywords);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ initShortcutListStyle('tag', libdoc.all_tags);
+ }
+ renderTemplate('keywords', libdoc);
+ renderTemplate('footer', libdoc);
+ params = util.parseQueryString(window.location.search.slice(1));
+ if ("tag" in params) {
+ tagSearch(params["tag"], window.location.hash);
+ }
+ scrollToHash();
+ $(document).bind('keydown', handleKeyDown);
+ workaroundFirefoxWidthBug();
+ });
+
+ function parseTemplates() {
+ $('script[type="text/x-jquery-tmpl"]').map(function (idx, elem) {
+ $.template(elem.id, elem.text);
+ });
+ }
+
+ function renderTemplate(name, arguments, container) {
+ if (!container) {
+ container = $('#' + name + '-container');
+ container.empty();
+ }
+ if (!arguments.search) {
+ arguments.search = false;
+ }
+ $.tmpl(name + '-template', arguments).appendTo(container);
+ }
+
+ function workaroundFirefoxWidthBug() {
+ // https://github.com/robotframework/robotframework/issues/3456
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1613163
+ $('.shortcuts a').width('max-content');
+ }
+
+ function initShortcutListStyle(name, items) {
+ var style = storage.get(name + '-list-style', 'compact');
+ if (style != 'compact' && items.length > 1) {
+ $('.' + name + '-list-separator').html('<br>');
+ $('.' + name + '-list-toggle .switch').prop('checked', true);
+ }
+ }
+
+ function setShortcutListStyle(name) {
+ var compact = !$('.' + name + '-list-toggle .switch').prop('checked');
+ $('.' + name + '-list-separator').html(compact ? '·' : '<br>');
+ storage.set(name + '-list-style', compact ? 'compact' : 'expanded');
+ }
+
+ function handleKeyDown(event) {
+ event = event || window.event;
+ var keyCode = event.keyCode || event.which;
+ if (keyCode === 27) // esc
+ setTimeout(closeSearch, 0);
+ if (keyCode === 83 && $('#search').is(':hidden')) // s
+ setTimeout(openSearch, 0);
+ }
+
+ function scrollToHash() {
+ if (window.location.hash) {
+ var hash = window.location.hash.substring(1).replace('+', ' ');
+ window.location.hash = '';
+ window.location.hash = hash;
+ }
+ }
+
+ function tagSearch(tag, hash) {
+ var include = {tags: true, tagsExact: true};
+ var url = window.location.pathname + "?tag=" + tag + (hash || "");
+ markMatches(tag, include);
+ highlightMatches(tag, include);
+ $('#keywords-container').find('.kw-row').addClass('hide-unmatched');
+ history.replaceState && history.replaceState(null, '', url);
+ document.getElementById('Shortcuts').scrollIntoView();
+ }
+
+ function doSearch() {
+ var string = $('#search-string').val();
+ var include = getIncludesAndDisableIfOnlyOneLeft();
+ if (string) {
+ markMatches(string, include);
+ highlightMatches(string, include);
+ setMatchVisibility();
+ } else {
+ resetKeywords();
+ }
+ }
+
+ function getIncludesAndDisableIfOnlyOneLeft() {
+ var name = $('#include-name');
+ var args = $('#include-args');
+ var doc = $('#include-doc');
+ var tags = $('#include-tags');
+ var include = {name: name.prop('checked'),
+ args: args.prop('checked'),
+ doc: doc.prop('checked'),
+ tags: !!tags.prop('checked')};
+ if ((!include.name) && (!include.args) && (!include.doc)) {
+ tags.prop('disabled', true);
+ } else if ((!include.name) && (!include.args) && (!include.tags)) {
+ doc.prop('disabled', true);
+ } else if ((!include.name) && (!include.doc) && (!include.tags)) {
+ args.prop('disabled', true);
+ } else if ((!include.args) && (!include.doc) && (!include.tags)) {
+ name.prop('disabled', true);
+ } else {
+ name.prop('disabled', false);
+ args.prop('disabled', false);
+ doc.prop('disabled', false);
+ tags.prop('disabled', false);
+ }
+ return include;
+ }
+
+ function markMatches(pattern, include) {
+ pattern = util.regexpEscape(pattern);
+ if (include.tagsExact) {
+ pattern = '^' + pattern + '$';
+ }
+ var regexp = new RegExp(pattern, 'i');
+ var test = regexp.test.bind(regexp);
+ var result = {contains_tags: libdoc.contains_tags};
+ var matchCount = 0;
+ result.keywords = util.map(libdoc.keywords, function (kw) {
+ kw = $.extend({}, kw);
+ kw.matched = (include.name && test(kw.name) ||
+ include.args && test(kw.args) ||
+ include.doc && test($(kw.doc).text()) ||
+ include.tags && util.any(util.map(kw.tags, test)));
+ if (kw.matched)
+ matchCount++;
+ return kw
+ });
+ renderTemplate('shortcuts', result);
+ renderTemplate('keywords', result);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ var ending = matchCount != 1 ? 's.' : '.';
+ $('#match-count').show().text(matchCount + ' matched keyword' + ending);
+ $('#altogether-count').hide();
+ if (matchCount == 0)
+ $('#keywords-container').find('table').empty();
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ }
+
+ function highlightMatches(string, include) {
+ var shortcuts = $('#shortcuts-container').find('.match');
+ var keywords = $('#keywords-container').find('.match');
+ if (include.name) {
+ shortcuts.highlight(string);
+ keywords.find('.kw').highlight(string);
+ }
+ if (include.args) {
+ keywords.find('.args').highlight(string);
+ }
+ if (include.doc) {
+ keywords.find('.doc').highlight(string);
+ }
+ if (include.tags) {
+ var matches = keywords.find('.tags').find('a').add(
+ $('#tags-container').find('a'));
+ if (include.tagsExact) {
+ matches = matches.filter(function (index, tag) {
+ return $(tag).text().toUpperCase() == string.toUpperCase();
+ });
+ }
+ matches.highlight(string);
+ }
+ }
+
+ function openSearch() {
+ $('#search').show();
+ $('#open-search').hide();
+ $('#search-string').focus().select();
+ $(document).scrollTop($("#Shortcuts").offset().top);
+ }
+
+ function closeSearch() {
+ $('#search').hide();
+ $('#open-search').show();
+ }
+
+ function resetSearch() {
+ $('#search-string').val('');
+ $('#search input:checkbox').prop({'checked': true, 'disabled': false});
+ resetKeywords();
+ }
+
+ function resetKeywords() {
+ renderTemplate('shortcuts', libdoc);
+ renderTemplate('keywords', libdoc);
+ if (libdoc.contains_tags) {
+ renderTemplate('tags', libdoc);
+ }
+ $('#match-count').hide();
+ $('#altogether-count').show();
+ history.replaceState && history.replaceState(null, '', location.pathname + location.hash);
+ setTimeout(workaroundFirefoxWidthBug, 100);
+ scrollToHash();
+ }
+
+ function setMatchVisibility() {
+ var kws = $('#keywords-container').find('.kw-row');
+ var hide = $('#hide-unmatched').prop('checked');
+ kws.toggleClass('hide-unmatched', hide);
+ }
+
+ // http://stackoverflow.com/a/18484799
+ var delay = (function () {
+ var timer = 0;
+ return function(callback, ms) {
+ clearTimeout(timer);
+ timer = setTimeout(callback, ms);
+ };
+ })();
+
+</script>
+
+<script type="text/x-jquery-tmpl" id="base-template">
+ <h1>${name}</h1>
+ <table class="metadata">
+ {{if version}}<tr><th>Library version:</th><td>${version}</td></tr>{{/if}}
+ {{if scope}}<tr><th>Library scope:</th><td>${scope}</td></tr>{{/if}}
+ <tr><th>Named arguments:</th><td>{{if named_args}}supported{{else}}not supported{{/if}}</td></tr>
+ </table>
+ <div id="introduction-container">
+ <h2 id="Introduction">Introduction</h2>
+ <div class="doc">{{html doc}}</div>
+ </div>
+ <div id="importing-container"></div>
+ <div id="shortcuts-container"></div>
+ <div id="tags-container"></div>
+ <div id="keywords-container"></div>
+ <div id="footer-container"></div>
+ <form id="search" action="javascript:void(0)">
+ <fieldset>
+ <legend id="search-title">Search keywords</legend>
+ <input type="text" id="search-string" onkeyup="delay(doSearch, 500)">
+ <fieldset>
+ <legend>Search from</legend>
+ <input type="checkbox" id="include-name" onclick="doSearch()" checked>
+ <label for="include-name">Name</label>
+ <input type="checkbox" id="include-args" onclick="doSearch()" checked>
+ <label for="include-args">Arguments</label>
+ <input type="checkbox" id="include-doc" onclick="doSearch()" checked>
+ <label for="include-doc">Documentation</label>
+ {{if libdoc.contains_tags}}
+ <input type="checkbox" id="include-tags" onclick="doSearch()" checked>
+ <label for="include-tags">Tags</label>
+ {{/if}}
+ </fieldset>
+ <input type="checkbox" id="hide-unmatched" onclick="setMatchVisibility()" checked>
+ <label for="hide-unmatched">Hide unmatched keywords</label>
+ <div id="search-buttons">
+ <input type="button" value="Reset" onclick="resetSearch()"
+ title="Reset search">
+ <input type="button" value="Close" onclick="closeSearch()"
+ title="Close search (shortcut: <Esc>)">
+ </div>
+ </fieldset>
+ </form>
+ <div id="open-search" onclick="openSearch()" title="Search keywords (shortcut: s)"></div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="importing-template">
+ <h2 id="Importing">Importing</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="args">Arguments</th>
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each inits}}
+ <tr class="kw-row">
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ <td class="doc">{{html $value.doc}}</td>
+ </tr>
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="shortcuts-template">
+ <h2 id="Shortcuts">Shortcuts</h2>
+ {{if keywords.length > 1}}
+ <div class="shortcut-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('shortcut');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each keywords}}
+ <a href="#${encodeURIComponent($value.name)}"
+ class="{{if $value.matched === false}}no-{{/if}}match"
+ title="${$value.shortdoc}">${$value.name}</a>
+ {{if $index < keywords.length-1}}
+ <span class="shortcut-list-separator">·</span>
+ {{/if}}
+ {{/each}}
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="tags-template">
+ <h2 id="Tags">Tags</h2>
+ {{if all_tags.length > 1}}
+ <div class="tag-list-toggle">
+ <b>List style:</b> Compact
+ <label title="Switch between compact list and expanded list">
+ <input type="checkbox" class="switch" onclick="setShortcutListStyle('tag');">
+ <span class="slider"></span>
+ </label>
+ Expanded
+ </div>
+ {{/if}}
+ <div class='shortcuts'>
+ {{each all_tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>
+ <span class="tag-list-separator">·</span>
+ {{/each}}
+ <a href="javascript:resetKeywords()" class="normal-first-letter"
+ title="Show all keywords">[Reset]</a>
+ </div>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keywords-template">
+ <h2 id="Keywords">Keywords</h2>
+ <table border="1" class="keywords">
+ <tr>
+ <th class="kw">Keyword</th>
+ <th class="args">Arguments</th>
+ {{if libdoc.contains_tags}}
+ <th class="tags">Tags</th>
+ {{/if}}
+ <th class="doc">Documentation</th>
+ </tr>
+ {{each keywords}}
+ {{tmpl($value) 'keyword-template'}}
+ {{/each}}
+ </table>
+</script>
+
+<script type="text/x-jquery-tmpl" id="keyword-template">
+ <tr class="kw-row {{if matched === false}}no-{{/if}}match">
+ <td class="kw">
+ <a name="${name}" href="#${encodeURIComponent(name)}"
+ title="Link to this keyword">${name}</a>
+ </td>
+ <td class="args">
+ {{each args}}
+ <span>${$value}</span>{{if $index < args.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{if libdoc.contains_tags}}
+ <td class="tags">
+ {{each tags}}
+ <a href="javascript:tagSearch('${$value}')"
+ title="Show keywords with this tag">${$value}</a>{{if $index < tags.length-1}},<br>{{/if}}
+ {{/each}}
+ </td>
+ {{/if}}
+ <td class="doc">{{html doc}}</td>
+ </tr>
+</script>
+
+
+<script type="text/x-jquery-tmpl" id="footer-template">
+ <p class="footer">
+ <span id="altogether-count">Altogether ${keywords.length} keywords.</span>
+ <span id="match-count"></span>
+ <br>
+ Generated by <a href="http://robotframework.org/robotframework/#built-in-tools">Libdoc</a> on ${generated}.
+ </p>
+</script>
+
+</body>
+</html>
diff --git a/grpc_robot/__init__.py b/grpc_robot/__init__.py
new file mode 100644
index 0000000..4ab9009
--- /dev/null
+++ b/grpc_robot/__init__.py
@@ -0,0 +1,18 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from .dmi_robot import GrpcDmiRobot as Dmi
+from .voltha_robot import GrpcVolthaRobot as Voltha
+from .tools.robot_tools import Collections
+from .tools.dmi_tools import DmiTools
+from .tools.voltha_tools import VolthaTools
diff --git a/grpc_robot/dmi_robot.py b/grpc_robot/dmi_robot.py
new file mode 100644
index 0000000..23950b5
--- /dev/null
+++ b/grpc_robot/dmi_robot.py
@@ -0,0 +1,55 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+import dmi
+
+from robot.api.deco import keyword
+from grpc_robot.grpc_robot import GrpcRobot
+
+
+class GrpcDmiRobot(GrpcRobot):
+ """
+ This library is intended to supported different Protocol Buffer definitions. Precondition is that python files
+ generated from Protocol Buffer files are available in a pip package which must be installed before the library
+ is used.
+
+ | Supported device | Pip package | Pip package version | Library Name |
+ | dmi | device-management-interface | 0.9.1 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.9.2 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.9.3 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.9.4 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.9.5 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.9.6 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.9.8 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.9.9 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.10.1 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.10.2 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 0.12.0 | grpc_robot.Dmi |
+ | dmi | device-management-interface | 1.0.0 | grpc_robot.Dmi |
+ """
+
+ device = 'dmi'
+ package_name = 'device-management-interface'
+ installed_package = dmi
+
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ @keyword
+ def dmi_version_get(self):
+ """
+ Retrieve the version of the currently used python module _device-management-interface_.
+
+ *Return*: version string consisting of three dot-separated numbers (x.y.z)
+ """
+ return self.pb_version
diff --git a/grpc_robot/grpc_robot.py b/grpc_robot/grpc_robot.py
new file mode 100644
index 0000000..2de6192
--- /dev/null
+++ b/grpc_robot/grpc_robot.py
@@ -0,0 +1,349 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+import os
+import grpc
+import json
+import getpass
+import inspect
+import logging
+import logging.config
+import tempfile
+import textwrap
+import importlib
+import pkg_resources
+
+from .tools.protop import ProtoBufParser
+from distutils.version import StrictVersion
+from robot.api.deco import keyword
+from robot.libraries.BuiltIn import BuiltIn, RobotNotRunningError
+
+
+def _package_version_get(package_name, source=None):
+ """
+ Returns the installed version number for the given pip package with name _package_name_.
+ """
+
+ if source:
+ head, tail = os.path.split(os.path.dirname(os.path.abspath(source)))
+
+ while tail:
+ try:
+ with open(os.path.join(head, 'VERSION')) as version_file:
+ return version_file.read().strip()
+ except Exception:
+ head, tail = os.path.split(head)
+
+ try:
+ return pkg_resources.get_distribution(package_name).version
+ except pkg_resources.DistributionNotFound:
+ raise NameError("Package '%s' is not installed!" % package_name)
+
+
+class GrpcRobot(object):
+
+ device = None
+ package_name = ''
+ installed_package = None
+
+ try:
+ ROBOT_LIBRARY_VERSION = _package_version_get('grpc_robot')
+ except NameError:
+ ROBOT_LIBRARY_VERSION = 'unknown'
+
+ ROBOT_LIBRARY_SCOPE = 'TEST_SUITE'
+ global_init = 0
+ global_timeout = 120
+ min_robot_version = 30202
+
+ connection_type = 'grpc'
+
+ def __init__(self, **kwargs):
+ super().__init__()
+
+ self._host = None
+ self._port = None
+
+ self.grpc_channel = None
+ self.timeout = 30
+ self.protobuf = None
+
+ self.keywords = {}
+
+ self.enable_logging()
+ self.logger = logging.getLogger('grpc')
+
+ self.pb_version = self.get_installed_version() or self.get_latest_pb_version()
+ self.load_services(self.pb_version)
+
+ @staticmethod
+ def enable_logging():
+
+ try:
+ log_dir = BuiltIn().replace_variables('${OUTPUT_DIR}')
+ except RobotNotRunningError:
+ log_dir = tempfile.gettempdir()
+
+ try:
+ logfile_name = os.path.join(log_dir, 'grpc_robot_%s.log' % getpass.getuser())
+ except KeyError:
+ logfile_name = os.path.join(log_dir, 'grpc_robot.log')
+
+ logging.config.dictConfig({
+ 'version': 1,
+ 'disable_existing_loggers': False,
+
+ 'formatters': {
+ 'standard': {
+ 'format': '%(asctime)s %(name)s [%(levelname)s] : %(message)s'
+ },
+ },
+ 'handlers': {
+ 'file': {
+ 'level': 'DEBUG',
+ 'class': 'logging.FileHandler',
+ 'mode': 'a',
+ 'filename': logfile_name,
+ 'formatter': 'standard'
+ },
+ },
+ 'loggers': {
+ 'grpc': {
+ 'handlers': ['file'],
+ 'level': 'DEBUG',
+ 'propagate': True
+ },
+ }
+ })
+
+ @staticmethod
+ def get_modules(*modules):
+ module_list = []
+ for module in modules:
+ for name, obj in inspect.getmembers(module, predicate=lambda o: inspect.isclass(o)):
+ module_list.append(obj)
+
+ return module_list
+
+ @staticmethod
+ def get_keywords_from_modules(*modules):
+ keywords = {}
+
+ for module in modules:
+ for name, obj in inspect.getmembers(module):
+ if hasattr(obj, 'robot_name'):
+ keywords[name] = module
+
+ return keywords
+
+ def get_installed_version(self):
+ dists = [str(d).split() for d in pkg_resources.working_set if str(d).split()[0] == self.package_name]
+
+ try:
+ pb_version = dists[0][-1]
+ self.logger.info('installed package %s==%s' % (self.package_name, pb_version))
+ except IndexError:
+ self.logger.error('package for %s not installed' % self.package_name)
+ return None
+
+ if pb_version not in self.get_supported_versions():
+ self.logger.warning('installed package %s==%s not supported by library, using version %s' % (
+ self.package_name, pb_version, self.get_latest_pb_version()))
+ pb_version = None
+
+ return pb_version
+
+ def get_supported_versions(self):
+
+ path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'services', self.device)
+
+ return sorted([
+ (name.split(self.device + '_')[1]).replace('_', '.')
+ for name in os.listdir(path)
+ if os.path.isdir(os.path.join(path, name)) and name.startswith(self.device)
+ ], key=StrictVersion)
+
+ def get_latest_pb_version(self):
+ return self.get_supported_versions()[-1]
+
+ def load_services(self, pb_version):
+ pb_version = pb_version.replace('.', '_')
+ path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'services', self.device, '%s_%s' % (self.device, pb_version))
+
+ modules = importlib.import_module('grpc_robot.services.%s.%s_%s' % (self.device, self.device, pb_version))
+
+ module_list = self.get_modules(modules)
+
+ self.keywords = self.get_keywords_from_modules(*module_list)
+
+ try:
+ self.protobuf = json.loads(open(os.path.join(path, '%s.json' % self.device)).read())
+ self.logger.debug('loaded services from %s' % os.path.join(path, '%s.json' % self.device))
+ except FileNotFoundError:
+ pip_dir = os.path.join(os.path.dirname(self.installed_package.__file__), 'protos')
+ self.protobuf = ProtoBufParser(self.device, self.pb_version, pip_dir).parse_files()
+
+ @keyword
+ def get_keyword_names(self):
+ """
+ Returns the list of keyword names
+ """
+ return sorted(list(self.keywords.keys()) + [name for name in dir(self) if hasattr(getattr(self, name), 'robot_name')])
+
+ def run_keyword(self, keyword_name, args, kwargs):
+ """
+ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#running-keywords
+
+ :param keyword_name: name of method to run
+ :param args: arguments to this method
+ :param kwargs: kwargs
+ :return: whatever the method returns
+ """
+ if keyword_name in self.keywords:
+ c = self.keywords[keyword_name](self)
+ else:
+ c = self
+
+ return getattr(c, keyword_name)(*args, **kwargs)
+
+ def get_keyword_arguments(self, keyword_name):
+ """
+ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#getting-keyword-arguments
+
+ :param keyword_name: name of method
+ :return: list of method arguments like in urls above
+ """
+
+ if keyword_name in self.keywords:
+ a = inspect.getargspec(getattr(self.keywords[keyword_name], keyword_name))
+ else:
+ a = inspect.getargspec(getattr(self, keyword_name))
+
+ # skip "self" as first parameter -> [1:]
+ args_without_defaults = a.args[1:-len(a.defaults)] if a.defaults is not None else a.args[1:]
+
+ args_with_defaults = []
+ if a.defaults is not None:
+ args_with_defaults = zip(a.args[-len(a.defaults):], a.defaults)
+ args_with_defaults = ['%s=%s' % (x, y) for x, y in args_with_defaults]
+
+ args = args_without_defaults + args_with_defaults
+
+ if a.varargs is not None:
+ args.append('*%s' % a.varargs)
+
+ if a.keywords is not None:
+ args.append('**%s' % a.keywords)
+
+ return args
+
+ def get_keyword_documentation(self, keyword_name):
+ """
+ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#getting-keyword-documentation
+ http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#documentation-formatting
+
+ :param keyword_name: name of method to get documentation for
+ :return: string formatted according documentation
+ """
+
+ if keyword_name == '__intro__':
+ return self.__doc__
+
+ doc_string = ''
+
+ if keyword_name in self.keywords:
+ c = self.keywords[keyword_name]
+ doc_string += textwrap.dedent(getattr(c, keyword_name).__doc__ or '') + '\n'
+ doc_string += c(self).get_documentation(keyword_name) # instanciate class and call "get_documentation"
+ return doc_string
+
+ return textwrap.dedent(getattr(self, keyword_name).__doc__ or '')
+
+ @keyword
+ def connection_open(self, host, port, **kwargs):
+ """
+ Opens a connection to the gRPC host.
+
+ *Parameters*:
+ - host: <string>|<IP address>; Name or IP address of the gRPC host.
+ - port: <number>; TCP port of the gRPC host.
+
+ *Named Parameters*:
+ - timeout: <number>; Timeout in seconds for a gRPC response. Default: 30 s
+ """
+ self._host = host
+ self._port = port
+ self.timeout = int(kwargs.get('timeout', self.timeout))
+
+ channel_options = [
+ ('grpc.keepalive_time_ms', 10000),
+ ('grpc.keepalive_timeout_ms', 5000)
+ ]
+
+ if kwargs.get('insecure', True):
+ self.grpc_channel = grpc.insecure_channel('%s:%s' % (self._host, self._port), options=channel_options)
+ else:
+ raise NotImplementedError('other than "insecure channel" not implemented')
+
+ user_pb_version = kwargs.get('pb_version') or self.pb_version
+ pb_version = user_pb_version # ToDo: or device_pb_version # get the pb version from device when available
+
+ self.load_services(pb_version)
+
+ @keyword
+ def connection_close(self):
+ """
+ Closes the connection to the gRPC host.
+ """
+ del self.grpc_channel
+ self.grpc_channel = None
+
+ def _connection_parameters_get(self):
+ return {
+ 'timeout': self.timeout
+ }
+
+ @keyword
+ def connection_parameters_set(self, **kwargs):
+ """
+ Sets the gRPC channel connection parameters.
+
+ *Named Parameters*:
+ - timeout: <number>; Timeout in seconds for a gRPC response.
+
+ *Return*: Same dictionary as the keyword _Connection Parameter Get_ with the values before they got changed.
+ """
+ connection_parameters = self._connection_parameters_get()
+
+ self.timeout = int(kwargs.get('timeout', self.timeout))
+
+ return connection_parameters
+
+ @keyword
+ def connection_parameters_get(self):
+ """
+ Retrieves the connection parameters for the gRPC channel.
+
+ *Return*: A dictionary with the keys:
+ - timeout
+ """
+ return self._connection_parameters_get()
+
+ @keyword
+ def library_version_get(self):
+ """
+ Retrieve the version of the currently running library instance.
+
+ *Return*: version string consisting of three dot-separated numbers (x.y.z)
+ """
+ return self.ROBOT_LIBRARY_VERSION
diff --git a/grpc_robot/services/__init__.py b/grpc_robot/services/__init__.py
new file mode 100644
index 0000000..b1ed822
--- /dev/null
+++ b/grpc_robot/services/__init__.py
@@ -0,0 +1,13 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
diff --git a/grpc_robot/services/dmi/__init__.py b/grpc_robot/services/dmi/__init__.py
new file mode 100644
index 0000000..b1ed822
--- /dev/null
+++ b/grpc_robot/services/dmi/__init__.py
@@ -0,0 +1,13 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
diff --git a/grpc_robot/services/dmi/dmi_0_10_1/__init__.py b/grpc_robot/services/dmi/dmi_0_10_1/__init__.py
new file mode 100644
index 0000000..a96b5a5
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_10_1/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_9 import *
diff --git a/grpc_robot/services/dmi/dmi_0_10_1/dmi.json b/grpc_robot/services/dmi/dmi_0_10_1/dmi.json
new file mode 100644
index 0000000..98802e6
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_10_1/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INDETERMINATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "DataValueType", "type": "enum", "module": "hw", "values": {"0": "VALUE_TYPE_UNDEFINED", "1": "VALUE_TYPE_OTHER", "2": "VALUE_TYPE_UNKNOWN", "3": "VALUE_TYPE_VOLTS_AC", "4": "VALUE_TYPE_VOLTS_DC", "5": "VALUE_TYPE_AMPERES", "6": "VALUE_TYPE_WATTS", "7": "VALUE_TYPE_HERTZ", "8": "VALUE_TYPE_CELSIUS", "9": "VALUE_TYPE_PERCENT_RH", "10": "VALUE_TYPE_RPM", "11": "VALUE_TYPE_CMM", "12": "VALUE_TYPE_TRUTH_VALUE"}}, {"name": "ValueScale", "type": "enum", "module": "hw", "values": {"0": "VALUE_SCALE_UNDEFINED", "1": "VALUE_SCALE_YOCTO", "2": "VALUE_SCALE_ZEPTO", "3": "VALUE_SCALE_ATTO", "4": "VALUE_SCALE_FEMTO", "5": "VALUE_SCALE_PICO", "6": "VALUE_SCALE_NANO", "7": "VALUE_SCALE_MICRO", "8": "VALUE_SCALE_MILLI", "9": "VALUE_SCALE_UNITS", "10": "VALUE_SCALE_KILO", "11": "VALUE_SCALE_MEGA", "12": "VALUE_SCALE_GIGA", "13": "VALUE_SCALE_TERA", "14": "VALUE_SCALE_PETA", "15": "VALUE_SCALE_EXA", "16": "VALUE_SCALE_ZETTA", "17": "VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "DataValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ConnectorType", "type": "enum", "module": "hw", "values": {"0": "CONNECTOR_TYPE_UNDEFINED", "1": "RJ45", "2": "FIBER_LC", "3": "FIBER_SC_PC", "4": "FIBER_MPO"}}, {"name": "Speed", "type": "enum", "module": "hw", "values": {"0": "SPEED_UNDEFINED", "1": "DYNAMIC", "2": "GIGABIT_1", "3": "GIGABIT_10", "4": "GIGABIT_25", "5": "GIGABIT_40", "6": "GIGABIT_100", "7": "GIGABIT_400", "8": "MEGABIT_2500", "9": "MEGABIT_1250"}}, {"name": "Protocol", "type": "enum", "module": "hw", "values": {"0": "PROTOCOL_UNDEFINED", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "GFAST", "6": "SERIAL", "7": "EPON"}}, {"name": "PortComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "connector_type", "is_choice": false, "repeated": false, "type": "ConnectorType", "lookup": true}, {"name": "speed", "is_choice": false, "repeated": false, "type": "Speed", "lookup": true}, {"name": "protocol", "is_choice": false, "repeated": false, "type": "Protocol", "lookup": true}, {"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ContainerComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SupportedVoltage", "type": "enum", "module": "hw", "values": {"0": "SUPPORTED_VOLTAGE_UNDEFINED", "1": "V48", "2": "V230", "3": "V115"}}, {"name": "PsuComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "supported_voltage", "is_choice": false, "repeated": false, "type": "SupportedVoltage", "lookup": true}]}, {"name": "FormFactor", "type": "enum", "module": "hw", "values": {"0": "FORM_FACTOR_UNKNOWN", "1": "QSFP", "2": "QSFP_PLUS", "3": "QSFP28", "4": "SFP", "5": "SFP_PLUS", "6": "XFP", "7": "CFP4", "8": "CFP2", "9": "CPAK", "10": "X2", "11": "OTHER", "12": "CFP", "13": "CFP2_ACO", "14": "CFP2_DCO"}}, {"name": "Type", "type": "enum", "module": "hw", "values": {"0": "TYPE_UNKNOWN", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "CPON", "6": "NG_PON2", "7": "EPON"}}, {"name": "TransceiverComponentsAttributes", "type": "message", "module": "hw", "fields": [{"name": "form_factor", "is_choice": false, "repeated": false, "type": "FormFactor", "lookup": true}, {"name": "trans_type", "is_choice": false, "repeated": false, "type": "Type", "lookup": true}, {"name": "max_distance", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "max_distance_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "rx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "tx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "wavelength_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}, {"name": "specific", "is_choice": true, "cases": [{"name": "port_attr", "type": "PortComponentAttributes", "lookup": true}, {"name": "container_attr", "type": "ContainerComponentAttributes", "lookup": true}, {"name": "psu_attr", "type": "PsuComponentAttributes", "lookup": true}, {"name": "transceiver_attr", "type": "TransceiverComponentsAttributes", "lookup": true}]}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "last_booted", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "POLL_INTERVAL_UNSUPPORTED", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "INVALID_CONFIG", "4": "DEVICE_UNREACHABLE"}}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM", "6": "OPERATION_ALREADY_IN_PROGRESS", "7": "UNKNOWN_DEVICE", "8": "DEVICE_NOT_REACHABLE"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR", "5": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "DEVICE_ALREADY_MANAGED", "2": "OPERATION_ALREADY_IN_PROGRESS", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR"}}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE"}}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "LOGGING_ENDPOINT_ERROR", "4": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "5": "MSGBUS_ENDPOINT_ERROR", "6": "DEVICE_UNREACHABLE"}}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "INTERNAL_ERROR", "2": "DEVICE_UNREACHABLE"}}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "ERROR_FETCHING_CONFIG", "4": "INVALID_CONFIG", "5": "OPERATION_ALREADY_IN_PROGRESS", "6": "DEVICE_UNREACHABLE"}}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StartupConfigInfoRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "StartupConfigInfoResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}, {"name": "GetStartupConfigurationInfo", "request": {"is_stream": false, "type": "StartupConfigInfoRequest", "lookup": true}, "response": {"is_stream": false, "type": "StartupConfigInfoResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_10_2/__init__.py b/grpc_robot/services/dmi/dmi_0_10_2/__init__.py
new file mode 100644
index 0000000..abb0bf7
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_10_2/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_10_1 import *
diff --git a/grpc_robot/services/dmi/dmi_0_10_2/dmi.json b/grpc_robot/services/dmi/dmi_0_10_2/dmi.json
new file mode 100644
index 0000000..98802e6
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_10_2/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INDETERMINATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "DataValueType", "type": "enum", "module": "hw", "values": {"0": "VALUE_TYPE_UNDEFINED", "1": "VALUE_TYPE_OTHER", "2": "VALUE_TYPE_UNKNOWN", "3": "VALUE_TYPE_VOLTS_AC", "4": "VALUE_TYPE_VOLTS_DC", "5": "VALUE_TYPE_AMPERES", "6": "VALUE_TYPE_WATTS", "7": "VALUE_TYPE_HERTZ", "8": "VALUE_TYPE_CELSIUS", "9": "VALUE_TYPE_PERCENT_RH", "10": "VALUE_TYPE_RPM", "11": "VALUE_TYPE_CMM", "12": "VALUE_TYPE_TRUTH_VALUE"}}, {"name": "ValueScale", "type": "enum", "module": "hw", "values": {"0": "VALUE_SCALE_UNDEFINED", "1": "VALUE_SCALE_YOCTO", "2": "VALUE_SCALE_ZEPTO", "3": "VALUE_SCALE_ATTO", "4": "VALUE_SCALE_FEMTO", "5": "VALUE_SCALE_PICO", "6": "VALUE_SCALE_NANO", "7": "VALUE_SCALE_MICRO", "8": "VALUE_SCALE_MILLI", "9": "VALUE_SCALE_UNITS", "10": "VALUE_SCALE_KILO", "11": "VALUE_SCALE_MEGA", "12": "VALUE_SCALE_GIGA", "13": "VALUE_SCALE_TERA", "14": "VALUE_SCALE_PETA", "15": "VALUE_SCALE_EXA", "16": "VALUE_SCALE_ZETTA", "17": "VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "DataValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ConnectorType", "type": "enum", "module": "hw", "values": {"0": "CONNECTOR_TYPE_UNDEFINED", "1": "RJ45", "2": "FIBER_LC", "3": "FIBER_SC_PC", "4": "FIBER_MPO"}}, {"name": "Speed", "type": "enum", "module": "hw", "values": {"0": "SPEED_UNDEFINED", "1": "DYNAMIC", "2": "GIGABIT_1", "3": "GIGABIT_10", "4": "GIGABIT_25", "5": "GIGABIT_40", "6": "GIGABIT_100", "7": "GIGABIT_400", "8": "MEGABIT_2500", "9": "MEGABIT_1250"}}, {"name": "Protocol", "type": "enum", "module": "hw", "values": {"0": "PROTOCOL_UNDEFINED", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "GFAST", "6": "SERIAL", "7": "EPON"}}, {"name": "PortComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "connector_type", "is_choice": false, "repeated": false, "type": "ConnectorType", "lookup": true}, {"name": "speed", "is_choice": false, "repeated": false, "type": "Speed", "lookup": true}, {"name": "protocol", "is_choice": false, "repeated": false, "type": "Protocol", "lookup": true}, {"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ContainerComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SupportedVoltage", "type": "enum", "module": "hw", "values": {"0": "SUPPORTED_VOLTAGE_UNDEFINED", "1": "V48", "2": "V230", "3": "V115"}}, {"name": "PsuComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "supported_voltage", "is_choice": false, "repeated": false, "type": "SupportedVoltage", "lookup": true}]}, {"name": "FormFactor", "type": "enum", "module": "hw", "values": {"0": "FORM_FACTOR_UNKNOWN", "1": "QSFP", "2": "QSFP_PLUS", "3": "QSFP28", "4": "SFP", "5": "SFP_PLUS", "6": "XFP", "7": "CFP4", "8": "CFP2", "9": "CPAK", "10": "X2", "11": "OTHER", "12": "CFP", "13": "CFP2_ACO", "14": "CFP2_DCO"}}, {"name": "Type", "type": "enum", "module": "hw", "values": {"0": "TYPE_UNKNOWN", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "CPON", "6": "NG_PON2", "7": "EPON"}}, {"name": "TransceiverComponentsAttributes", "type": "message", "module": "hw", "fields": [{"name": "form_factor", "is_choice": false, "repeated": false, "type": "FormFactor", "lookup": true}, {"name": "trans_type", "is_choice": false, "repeated": false, "type": "Type", "lookup": true}, {"name": "max_distance", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "max_distance_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "rx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "tx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "wavelength_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}, {"name": "specific", "is_choice": true, "cases": [{"name": "port_attr", "type": "PortComponentAttributes", "lookup": true}, {"name": "container_attr", "type": "ContainerComponentAttributes", "lookup": true}, {"name": "psu_attr", "type": "PsuComponentAttributes", "lookup": true}, {"name": "transceiver_attr", "type": "TransceiverComponentsAttributes", "lookup": true}]}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "last_booted", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "POLL_INTERVAL_UNSUPPORTED", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "INVALID_CONFIG", "4": "DEVICE_UNREACHABLE"}}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM", "6": "OPERATION_ALREADY_IN_PROGRESS", "7": "UNKNOWN_DEVICE", "8": "DEVICE_NOT_REACHABLE"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR", "5": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "DEVICE_ALREADY_MANAGED", "2": "OPERATION_ALREADY_IN_PROGRESS", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR"}}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE"}}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "LOGGING_ENDPOINT_ERROR", "4": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "5": "MSGBUS_ENDPOINT_ERROR", "6": "DEVICE_UNREACHABLE"}}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "INTERNAL_ERROR", "2": "DEVICE_UNREACHABLE"}}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "ERROR_FETCHING_CONFIG", "4": "INVALID_CONFIG", "5": "OPERATION_ALREADY_IN_PROGRESS", "6": "DEVICE_UNREACHABLE"}}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StartupConfigInfoRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "StartupConfigInfoResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}, {"name": "GetStartupConfigurationInfo", "request": {"is_stream": false, "type": "StartupConfigInfoRequest", "lookup": true}, "response": {"is_stream": false, "type": "StartupConfigInfoResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_12_0/__init__.py b/grpc_robot/services/dmi/dmi_0_12_0/__init__.py
new file mode 100644
index 0000000..64c6f44
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_12_0/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_10_2 import *
diff --git a/grpc_robot/services/dmi/dmi_0_12_0/dmi.json b/grpc_robot/services/dmi/dmi_0_12_0/dmi.json
new file mode 100644
index 0000000..3f5918c
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_12_0/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INDETERMINATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "DataValueType", "type": "enum", "module": "hw", "values": {"0": "VALUE_TYPE_UNDEFINED", "1": "VALUE_TYPE_OTHER", "2": "VALUE_TYPE_UNKNOWN", "3": "VALUE_TYPE_VOLTS_AC", "4": "VALUE_TYPE_VOLTS_DC", "5": "VALUE_TYPE_AMPERES", "6": "VALUE_TYPE_WATTS", "7": "VALUE_TYPE_HERTZ", "8": "VALUE_TYPE_CELSIUS", "9": "VALUE_TYPE_PERCENT_RH", "10": "VALUE_TYPE_RPM", "11": "VALUE_TYPE_CMM", "12": "VALUE_TYPE_TRUTH_VALUE", "13": "VALUE_TYPE_PERCENT", "14": "VALUE_TYPE_METERS", "15": "VALUE_TYPE_BYTES"}}, {"name": "ValueScale", "type": "enum", "module": "hw", "values": {"0": "VALUE_SCALE_UNDEFINED", "1": "VALUE_SCALE_YOCTO", "2": "VALUE_SCALE_ZEPTO", "3": "VALUE_SCALE_ATTO", "4": "VALUE_SCALE_FEMTO", "5": "VALUE_SCALE_PICO", "6": "VALUE_SCALE_NANO", "7": "VALUE_SCALE_MICRO", "8": "VALUE_SCALE_MILLI", "9": "VALUE_SCALE_UNITS", "10": "VALUE_SCALE_KILO", "11": "VALUE_SCALE_MEGA", "12": "VALUE_SCALE_GIGA", "13": "VALUE_SCALE_TERA", "14": "VALUE_SCALE_PETA", "15": "VALUE_SCALE_EXA", "16": "VALUE_SCALE_ZETTA", "17": "VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "DataValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ConnectorType", "type": "enum", "module": "hw", "values": {"0": "CONNECTOR_TYPE_UNDEFINED", "1": "RJ45", "2": "FIBER_LC", "3": "FIBER_SC_PC", "4": "FIBER_MPO", "5": "RS232"}}, {"name": "Speed", "type": "enum", "module": "hw", "values": {"0": "SPEED_UNDEFINED", "1": "DYNAMIC", "2": "GIGABIT_1", "3": "GIGABIT_10", "4": "GIGABIT_25", "5": "GIGABIT_40", "6": "GIGABIT_100", "7": "GIGABIT_400", "8": "MEGABIT_2500", "9": "MEGABIT_1250"}}, {"name": "Protocol", "type": "enum", "module": "hw", "values": {"0": "PROTOCOL_UNDEFINED", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "GFAST", "6": "SERIAL", "7": "EPON", "8": "BITS"}}, {"name": "PortComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "connector_type", "is_choice": false, "repeated": false, "type": "ConnectorType", "lookup": true}, {"name": "speed", "is_choice": false, "repeated": false, "type": "Speed", "lookup": true}, {"name": "protocol", "is_choice": false, "repeated": false, "type": "Protocol", "lookup": true}, {"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ContainerComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SupportedVoltage", "type": "enum", "module": "hw", "values": {"0": "SUPPORTED_VOLTAGE_UNDEFINED", "1": "V48", "2": "V230", "3": "V115"}}, {"name": "PsuComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "supported_voltage", "is_choice": false, "repeated": false, "type": "SupportedVoltage", "lookup": true}]}, {"name": "FormFactor", "type": "enum", "module": "hw", "values": {"0": "FORM_FACTOR_UNKNOWN", "1": "QSFP", "2": "QSFP_PLUS", "3": "QSFP28", "4": "SFP", "5": "SFP_PLUS", "6": "XFP", "7": "CFP4", "8": "CFP2", "9": "CPAK", "10": "X2", "11": "OTHER", "12": "CFP", "13": "CFP2_ACO", "14": "CFP2_DCO"}}, {"name": "Type", "type": "enum", "module": "hw", "values": {"0": "TYPE_UNKNOWN", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "CPON", "6": "NG_PON2", "7": "EPON"}}, {"name": "TransceiverComponentsAttributes", "type": "message", "module": "hw", "fields": [{"name": "form_factor", "is_choice": false, "repeated": false, "type": "FormFactor", "lookup": true}, {"name": "trans_type", "is_choice": false, "repeated": false, "type": "Type", "lookup": true}, {"name": "max_distance", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "max_distance_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "rx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "tx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "wavelength_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}, {"name": "specific", "is_choice": true, "cases": [{"name": "port_attr", "type": "PortComponentAttributes", "lookup": true}, {"name": "container_attr", "type": "ContainerComponentAttributes", "lookup": true}, {"name": "psu_attr", "type": "PsuComponentAttributes", "lookup": true}, {"name": "transceiver_attr", "type": "TransceiverComponentsAttributes", "lookup": true}]}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "last_booted", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "POLL_INTERVAL_UNSUPPORTED", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "INVALID_CONFIG", "4": "DEVICE_UNREACHABLE"}}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM", "6": "OPERATION_ALREADY_IN_PROGRESS", "7": "UNKNOWN_DEVICE", "8": "DEVICE_NOT_REACHABLE"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR", "5": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "DEVICE_ALREADY_MANAGED", "2": "OPERATION_ALREADY_IN_PROGRESS", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR"}}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE"}}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "LOGGING_ENDPOINT_ERROR", "4": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "5": "MSGBUS_ENDPOINT_ERROR", "6": "DEVICE_UNREACHABLE"}}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "INTERNAL_ERROR", "2": "DEVICE_UNREACHABLE"}}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "ERROR_FETCHING_CONFIG", "4": "INVALID_CONFIG", "5": "OPERATION_ALREADY_IN_PROGRESS", "6": "DEVICE_UNREACHABLE"}}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StartupConfigInfoRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "StartupConfigInfoResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}, {"name": "GetStartupConfigurationInfo", "request": {"is_stream": false, "type": "StartupConfigInfoRequest", "lookup": true}, "response": {"is_stream": false, "type": "StartupConfigInfoResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_1/__init__.py b/grpc_robot/services/dmi/dmi_0_9_1/__init__.py
new file mode 100644
index 0000000..9e78f73
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_1/__init__.py
@@ -0,0 +1,17 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from .hw_events_mgmt_service import *
+from .hw_management_service import *
+from .hw_metrics_mgmt_service import *
+from .sw_management_service import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_1/dmi.json b/grpc_robot/services/dmi/dmi_0_9_1/dmi.json
new file mode 100644
index 0000000..84a0d71
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_1/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": ["UNDEFINED_STATUS", "OK", "ERROR"]}, {"name": "Reason", "type": "enum", "module": "commons", "values": ["UNDEFINED_REASON", "UNKNOWN_DEVICE", "INTERNAL_ERROR", "WRONG_METRIC", "WRONG_EVENT", "LOGGING_ENDPOINT_ERROR", "LOGGING_ENDPOINT_PROTOCOL_ERROR", "KAFKA_ENDPOINT_ERROR"]}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": ["COMPONENT_TYPE_UNDEFINED", "COMPONENT_TYPE_UNKNOWN", "COMPONENT_TYPE_CHASSIS", "COMPONENT_TYPE_BACKPLANE", "COMPONENT_TYPE_CONTAINER", "COMPONENT_TYPE_POWER_SUPPLY", "COMPONENT_TYPE_FAN", "COMPONENT_TYPE_SENSOR", "COMPONENT_TYPE_MODULE", "COMPONENT_TYPE_PORT", "COMPONENT_TYPE_CPU", "COMPONENT_TYPE_BATTERY", "COMPONENT_TYPE_STORAGE", "COMPONENT_TYPE_MEMORY", "COMPONENT_TYPE_TRANSCEIVER", "COMPONENT_TYPE_GPON_TRANSCEIVER", "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"]}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": ["COMP_ADMIN_STATE_UNDEFINED", "COMP_ADMIN_STATE_UNKNOWN", "COMP_ADMIN_STATE_LOCKED", "COMP_ADMIN_STATE_SHUTTING_DOWN", "COMP_ADMIN_STATE_UNLOCKED"]}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": ["COMP_OPER_STATE_UNDEFINED", "COMP_OPER_STATE_UNKNOWN", "COMP_OPER_STATE_DISABLED", "COMP_OPER_STATE_ENABLED", "COMP_OPER_STATE_TESTING"]}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": ["COMP_USAGE_STATE_UNDEFINED", "COMP_USAGE_STATE_UNKNOWN", "COMP_USAGE_STATE_IDLE", "COMP_USAGE_STATE_ACTIVE", "COMP_USAGE_STATE_BUSY"]}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": ["COMP_ALARM_STATE_UNDEFINED", "COMP_ALARM_STATE_UNKNOWN", "COMP_ALARM_STATE_UNDER_REPAIR", "COMP_ALARM_STATE_CRITICAL", "COMP_ALARM_STATE_MAJOR", "COMP_ALARM_STATE_MINOR", "COMP_ALARM_STATE_WARNING", "COMP_ALARM_STATE_INTERMEDIATE"]}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": ["COMP_STANDBY_STATE_UNDEFINED", "COMP_STANDBY_STATE_UNKNOWN", "COMP_STANDBY_STATE_HOT", "COMP_STANDBY_STATE_COLD", "COMP_STANDBY_STATE_PROVIDING_SERVICE"]}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": ["SENSOR_VALUE_TYPE_UNDEFINED", "SENSOR_VALUE_TYPE_OTHER", "SENSOR_VALUE_TYPE_UNKNOWN", "SENSOR_VALUE_TYPE_VOLTS_AC", "SENSOR_VALUE_TYPE_VOLTS_DC", "SENSOR_VALUE_TYPE_AMPERES", "SENSOR_VALUE_TYPE_WATTS", "SENSOR_VALUE_TYPE_HERTZ", "SENSOR_VALUE_TYPE_CELSIUS", "SENSOR_VALUE_TYPE_PERCENT_RH", "SENSOR_VALUE_TYPE_RPM", "SENSOR_VALUE_TYPE_CMM", "SENSOR_VALUE_TYPE_TRUTH_VALUE"]}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": ["SENSOR_VALUE_SCALE_UNDEFINED", "SENSOR_VALUE_SCALE_YOCTO", "SENSOR_VALUE_SCALE_ZEPTO", "SENSOR_VALUE_SCALE_ATTO", "SENSOR_VALUE_SCALE_FEMTO", "SENSOR_VALUE_SCALE_PICO", "SENSOR_VALUE_SCALE_NANO", "SENSOR_VALUE_SCALE_MICRO", "SENSOR_VALUE_SCALE_MILLI", "SENSOR_VALUE_SCALE_UNITS", "SENSOR_VALUE_SCALE_KILO", "SENSOR_VALUE_SCALE_MEGA", "SENSOR_VALUE_SCALE_GIGA", "SENSOR_VALUE_SCALE_TERA", "SENSOR_VALUE_SCALE_PETA", "SENSOR_VALUE_SCALE_EXA", "SENSOR_VALUE_SCALE_ZETTA", "SENSOR_VALUE_SCALE_YOTTA"]}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": ["SENSOR_STATUS_UNDEFINED", "SENSOR_STATUS_OK", "SENSOR_STATUS_UNAVAILABLE", "SENSOR_STATUS_NONOPERATIONAL"]}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": ["METRIC_NAME_UNDEFINED", "METRIC_FAN_SPEED", "METRIC_CPU_TEMP", "METRIC_CPU_USAGE_PERCENTAGE", "METRIC_TRANSCEIVER_TEMP", "METRIC_TRANSCEIVER_VOLTAGE", "METRIC_TRANSCEIVER_BIAS", "METRIC_TRANSCEIVER_RX_POWER", "METRIC_TRANSCEIVER_TX_POWER", "METRIC_TRANSCEIVER_WAVELENGTH", "METRIC_DISK_TEMP", "METRIC_DISK_CAPACITY", "METRIC_DISK_USAGE", "METRIC_DISK_USAGE_PERCENTAGE", "METRIC_DISK_READ_WRITE_PERCENTAGE", "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "METRIC_RAM_TEMP", "METRIC_RAM_CAPACITY", "METRIC_RAM_USAGE", "METRIC_RAM_USAGE_PERCENTAGE", "METRIC_POWER_MAX", "METRIC_POWER_USAGE", "METRIC_POWER_USAGE_PERCENTAGE", "METRIC_INNER_SURROUNDING_TEMP"]}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": ["EVENT_NAME_UNDEFINED", "EVENT_TRANSCEIVER_PLUG_OUT", "EVENT_TRANSCEIVER_PLUG_IN", "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "EVENT_TRANSCEIVER_FAILURE", "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "EVENT_PSU_PLUG_OUT", "EVENT_PSU_PLUG_IN", "EVENT_PSU_FAILURE", "EVENT_PSU_FAILURE_RECOVERED", "EVENT_FAN_FAILURE", "EVENT_FAN_PLUG_OUT", "EVENT_FAN_PLUG_IN", "EVENT_FAN_FAILURE_RECOVERED", "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "EVENT_HW_DEVICE_RESET", "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"]}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": ["UNDEFINED_STATE", "COPYING_IMAGE", "INSTALLING_IMAGE", "COMMITTING_IMAGE", "REBOOTING_DEVICE", "UPGRADE_COMPLETE", "UPGRADE_FAILED", "ACTIVATION_COMPLETE", "ACTIVATION_FAILED"]}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": ["UNDEFINED_REASON", "ERROR_IN_REQUEST", "INTERNAL_ERROR", "DEVICE_IN_WRONG_STATE", "INVALID_IMAGE", "WRONG_IMAGE_CHECKSUM"]}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "Uuid", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_1/hw_events_mgmt_service.py b/grpc_robot/services/dmi/dmi_0_9_1/hw_events_mgmt_service.py
new file mode 100644
index 0000000..26c1cfe
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_1/hw_events_mgmt_service.py
@@ -0,0 +1,38 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_events_mgmt_service_pb2_grpc, hw_events_mgmt_service_pb2, hw_pb2
+
+
+class NativeEventsManagementService(Service):
+
+ prefix = 'hw_event_mgmt_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_events_mgmt_service_pb2_grpc.NativeEventsManagementServiceStub)
+
+ # rpc ListEvents(HardwareID) returns(ListEventsResponse);
+ @keyword
+ @is_connected
+ def hw_event_mgmt_service_list_events(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListEvents, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc UpdateEventsConfiguration(EventsConfigurationRequest) returns(EventsConfigurationResponse);
+ @keyword
+ @is_connected
+ def hw_event_mgmt_service_update_events_configuration(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateEventsConfiguration, hw_events_mgmt_service_pb2.EventsConfigurationRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_1/hw_management_service.py b/grpc_robot/services/dmi/dmi_0_9_1/hw_management_service.py
new file mode 100644
index 0000000..8d85b99
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_1/hw_management_service.py
@@ -0,0 +1,81 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_management_service_pb2_grpc, hw_management_service_pb2, hw_pb2
+
+
+class NativeHWManagementService(Service):
+
+ prefix = 'hw_management_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_management_service_pb2_grpc.NativeHWManagementServiceStub)
+
+ @keyword
+ @is_connected
+ def hw_management_service_start_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StartManagingDevice, hw_pb2.ModifiableComponent, param_dict, **kwargs)
+
+ @keyword
+ @is_connected
+ def hw_management_service_stop_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StopManagingDevice, hw_management_service_pb2.StopManagingDeviceRequest, param_dict, **kwargs)
+
+ @keyword
+ @is_connected
+ def hw_management_service_get_physical_inventory(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetPhysicalInventory, hw_management_service_pb2.PhysicalInventoryRequest, param_dict, **kwargs)
+
+ @keyword
+ @is_connected
+ def hw_management_service_get_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetHWComponentInfo, hw_management_service_pb2.HWComponentInfoGetRequest, param_dict, **kwargs)
+
+ @keyword
+ @is_connected
+ def hw_management_service_set_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetHWComponentInfo, hw_management_service_pb2.HWComponentInfoSetRequest, param_dict, **kwargs)
+
+ # rpc GetManagedDevices(google.protobuf.Empty) returns(ManagedDevicesResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_managed_devices(self, **kwargs):
+ return self._grpc_helper(self.stub.GetManagedDevices, hw_management_service_pb2.ManagedDevicesResponse, **kwargs)
+
+ # rpc SetLoggingEndpoint(SetLoggingEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetLoggingEndpoint, hw_management_service_pb2.SetLoggingEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetLoggingEndpoint(Uuid) returns(GetLoggingEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLoggingEndpoint, hw_pb2.Uuid, param_dict, **kwargs)
+
+ # rpc SetMsgBusEndpoint(SetMsgBusEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_msg_bus_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetMsgBusEndpoint, hw_management_service_pb2.SetMsgBusEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetMsgBusEndpoint(google.protobuf.Empty) returns(GetMsgBusEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_msg_bus_endpoint(self, **kwargs):
+ return self._grpc_helper(self.stub.GetMsgBusEndpoint, hw_management_service_pb2.GetMsgBusEndpointResponse, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_1/hw_metrics_mgmt_service.py b/grpc_robot/services/dmi/dmi_0_9_1/hw_metrics_mgmt_service.py
new file mode 100644
index 0000000..0fb8940
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_1/hw_metrics_mgmt_service.py
@@ -0,0 +1,44 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_metrics_mgmt_service_pb2_grpc, hw_metrics_mgmt_service_pb2, hw_pb2
+
+
+class NativeMetricsManagementService(Service):
+
+ prefix = 'hw_metrics_mgmt_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_metrics_mgmt_service_pb2_grpc.NativeMetricsManagementServiceStub)
+
+ # rpc ListMetrics(HardwareID) returns(ListMetricsResponse);
+ @keyword
+ @is_connected
+ def hw_metrics_mgmt_service_list_metrics(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListMetrics, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc UpdateMetricsConfiguration(MetricsConfigurationRequest) returns(MetricsConfigurationResponse);
+ @keyword
+ @is_connected
+ def hw_metrics_mgmt_service_update_metrics_configuration(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateMetricsConfiguration, hw_metrics_mgmt_service_pb2.MetricsConfigurationRequest, param_dict, **kwargs)
+
+ # rpc GetMetric(GetMetricRequest) returns(GetMetricResponse);
+ @keyword
+ @is_connected
+ def hw_metrics_mgmt_service_get_metric(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetMetric, hw_metrics_mgmt_service_pb2.GetMetricRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_1/sw_management_service.py b/grpc_robot/services/dmi/dmi_0_9_1/sw_management_service.py
new file mode 100644
index 0000000..e844b23
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_1/sw_management_service.py
@@ -0,0 +1,46 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import sw_management_service_pb2_grpc, sw_management_service_pb2, hw_pb2
+
+
+class NativeSoftwareManagementService(Service):
+
+ prefix = 'sw_management_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=sw_management_service_pb2_grpc.NativeSoftwareManagementServiceStub)
+
+ @keyword
+ @is_connected
+ def sw_management_service_get_software_version(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetSoftwareVersion, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ @keyword
+ @is_connected
+ def sw_management_service_download_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DownloadImage, sw_management_service_pb2.DownloadImageRequest, param_dict, **kwargs)
+
+ @keyword
+ @is_connected
+ def sw_management_service_activate_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ActivateImage, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ @keyword
+ @is_connected
+ def sw_management_service_revert_to_standby_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RevertToStandbyImage, hw_pb2.HardwareID, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_2/__init__.py b/grpc_robot/services/dmi/dmi_0_9_2/__init__.py
new file mode 100644
index 0000000..789917d
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_2/__init__.py
@@ -0,0 +1,17 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_1.hw_events_mgmt_service import *
+from ..dmi_0_9_1.hw_metrics_mgmt_service import *
+from ..dmi_0_9_1.sw_management_service import *
+from .hw_management_service import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_2/dmi.json b/grpc_robot/services/dmi/dmi_0_9_2/dmi.json
new file mode 100644
index 0000000..14850b9
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_2/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "Reason", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "WRONG_METRIC", "4": "WRONG_EVENT", "5": "LOGGING_ENDPOINT_ERROR", "6": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "7": "KAFKA_ENDPOINT_ERROR"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER", "15": "COMPONENT_TYPE_GPON_TRANSCEIVER", "16": "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INTERMEDIATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_TYPE_UNDEFINED", "1": "SENSOR_VALUE_TYPE_OTHER", "2": "SENSOR_VALUE_TYPE_UNKNOWN", "3": "SENSOR_VALUE_TYPE_VOLTS_AC", "4": "SENSOR_VALUE_TYPE_VOLTS_DC", "5": "SENSOR_VALUE_TYPE_AMPERES", "6": "SENSOR_VALUE_TYPE_WATTS", "7": "SENSOR_VALUE_TYPE_HERTZ", "8": "SENSOR_VALUE_TYPE_CELSIUS", "9": "SENSOR_VALUE_TYPE_PERCENT_RH", "10": "SENSOR_VALUE_TYPE_RPM", "11": "SENSOR_VALUE_TYPE_CMM", "12": "SENSOR_VALUE_TYPE_TRUTH_VALUE"}}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_SCALE_UNDEFINED", "1": "SENSOR_VALUE_SCALE_YOCTO", "2": "SENSOR_VALUE_SCALE_ZEPTO", "3": "SENSOR_VALUE_SCALE_ATTO", "4": "SENSOR_VALUE_SCALE_FEMTO", "5": "SENSOR_VALUE_SCALE_PICO", "6": "SENSOR_VALUE_SCALE_NANO", "7": "SENSOR_VALUE_SCALE_MICRO", "8": "SENSOR_VALUE_SCALE_MILLI", "9": "SENSOR_VALUE_SCALE_UNITS", "10": "SENSOR_VALUE_SCALE_KILO", "11": "SENSOR_VALUE_SCALE_MEGA", "12": "SENSOR_VALUE_SCALE_GIGA", "13": "SENSOR_VALUE_SCALE_TERA", "14": "SENSOR_VALUE_SCALE_PETA", "15": "SENSOR_VALUE_SCALE_EXA", "16": "SENSOR_VALUE_SCALE_ZETTA", "17": "SENSOR_VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "responses", "is_choice": false, "repeated": true, "type": "DeviceLogResponse", "lookup": true}]}, {"name": "DeviceLogResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "Uuid", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_2/hw_management_service.py b/grpc_robot/services/dmi/dmi_0_9_2/hw_management_service.py
new file mode 100644
index 0000000..f275851
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_2/hw_management_service.py
@@ -0,0 +1,104 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from ...service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_management_service_pb2_grpc, hw_management_service_pb2, hw_pb2
+
+
+class NativeHWManagementService(Service):
+
+ prefix = 'hw_management_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_management_service_pb2_grpc.NativeHWManagementServiceStub)
+
+ # rpc StartManagingDevice(ModifiableComponent) returns(stream StartManagingDeviceResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_start_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StartManagingDevice, hw_pb2.ModifiableComponent, param_dict, **kwargs)
+
+ # rpc StopManagingDevice(StopManagingDeviceRequest) returns(StopManagingDeviceResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_stop_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StopManagingDevice, hw_management_service_pb2.StopManagingDeviceRequest, param_dict, **kwargs)
+
+ # rpc GetPhysicalInventory(PhysicalInventoryRequest) returns(stream PhysicalInventoryResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_physical_inventory(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetPhysicalInventory, hw_management_service_pb2.PhysicalInventoryRequest, param_dict, **kwargs)
+
+ # rpc GetHWComponentInfo(HWComponentInfoGetRequest) returns(stream HWComponentInfoGetResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetHWComponentInfo, hw_management_service_pb2.HWComponentInfoGetRequest, param_dict, **kwargs)
+
+ # rpc SetHWComponentInfo(HWComponentInfoSetRequest) returns(HWComponentInfoSetResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetHWComponentInfo, hw_management_service_pb2.HWComponentInfoSetRequest, param_dict, **kwargs)
+
+ # rpc GetManagedDevices(google.protobuf.Empty) returns(ManagedDevicesResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_managed_devices(self, **kwargs):
+ return self._grpc_helper(self.stub.GetManagedDevices, **kwargs)
+
+ # rpc SetLoggingEndpoint(SetLoggingEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetLoggingEndpoint, hw_management_service_pb2.SetLoggingEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetLoggingEndpoint(Uuid) returns(GetLoggingEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLoggingEndpoint, hw_pb2.Uuid, param_dict)
+
+ # rpc SetMsgBusEndpoint(SetMsgBusEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_msg_bus_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetMsgBusEndpoint, hw_management_service_pb2.SetMsgBusEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetMsgBusEndpoint(google.protobuf.Empty) returns(GetMsgBusEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_msg_bus_endpoint(self, **kwargs):
+ return self._grpc_helper(self.stub.GetMsgBusEndpoint, **kwargs)
+
+ # rpc GetLoggableEntities(GetLoggableEntitiesRequest) returns(GetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_loggable_entities(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLoggableEntities, hw_management_service_pb2.GetLoggableEntitiesRequest, param_dict, **kwargs)
+
+ # rpc SetLogLevel(SetLogLevelRequest) returns(SetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_log_level(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetLogLevel, hw_management_service_pb2.SetLogLevelRequest, param_dict, **kwargs)
+
+ # rpc GetLogLevel(GetLogLevelRequest) returns(GetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_log_level(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLogLevel, hw_management_service_pb2.GetLogLevelRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_3/__init__.py b/grpc_robot/services/dmi/dmi_0_9_3/__init__.py
new file mode 100644
index 0000000..c5af1c4
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_3/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_2 import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_3/dmi.json b/grpc_robot/services/dmi/dmi_0_9_3/dmi.json
new file mode 100644
index 0000000..14850b9
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_3/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "Reason", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "WRONG_METRIC", "4": "WRONG_EVENT", "5": "LOGGING_ENDPOINT_ERROR", "6": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "7": "KAFKA_ENDPOINT_ERROR"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER", "15": "COMPONENT_TYPE_GPON_TRANSCEIVER", "16": "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INTERMEDIATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_TYPE_UNDEFINED", "1": "SENSOR_VALUE_TYPE_OTHER", "2": "SENSOR_VALUE_TYPE_UNKNOWN", "3": "SENSOR_VALUE_TYPE_VOLTS_AC", "4": "SENSOR_VALUE_TYPE_VOLTS_DC", "5": "SENSOR_VALUE_TYPE_AMPERES", "6": "SENSOR_VALUE_TYPE_WATTS", "7": "SENSOR_VALUE_TYPE_HERTZ", "8": "SENSOR_VALUE_TYPE_CELSIUS", "9": "SENSOR_VALUE_TYPE_PERCENT_RH", "10": "SENSOR_VALUE_TYPE_RPM", "11": "SENSOR_VALUE_TYPE_CMM", "12": "SENSOR_VALUE_TYPE_TRUTH_VALUE"}}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_SCALE_UNDEFINED", "1": "SENSOR_VALUE_SCALE_YOCTO", "2": "SENSOR_VALUE_SCALE_ZEPTO", "3": "SENSOR_VALUE_SCALE_ATTO", "4": "SENSOR_VALUE_SCALE_FEMTO", "5": "SENSOR_VALUE_SCALE_PICO", "6": "SENSOR_VALUE_SCALE_NANO", "7": "SENSOR_VALUE_SCALE_MICRO", "8": "SENSOR_VALUE_SCALE_MILLI", "9": "SENSOR_VALUE_SCALE_UNITS", "10": "SENSOR_VALUE_SCALE_KILO", "11": "SENSOR_VALUE_SCALE_MEGA", "12": "SENSOR_VALUE_SCALE_GIGA", "13": "SENSOR_VALUE_SCALE_TERA", "14": "SENSOR_VALUE_SCALE_PETA", "15": "SENSOR_VALUE_SCALE_EXA", "16": "SENSOR_VALUE_SCALE_ZETTA", "17": "SENSOR_VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "responses", "is_choice": false, "repeated": true, "type": "DeviceLogResponse", "lookup": true}]}, {"name": "DeviceLogResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "Uuid", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_4/__init__.py b/grpc_robot/services/dmi/dmi_0_9_4/__init__.py
new file mode 100644
index 0000000..789917d
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_4/__init__.py
@@ -0,0 +1,17 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_1.hw_events_mgmt_service import *
+from ..dmi_0_9_1.hw_metrics_mgmt_service import *
+from ..dmi_0_9_1.sw_management_service import *
+from .hw_management_service import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_4/dmi.json b/grpc_robot/services/dmi/dmi_0_9_4/dmi.json
new file mode 100644
index 0000000..eee2af4
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_4/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "Reason", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "WRONG_METRIC", "4": "WRONG_EVENT", "5": "LOGGING_ENDPOINT_ERROR", "6": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "7": "KAFKA_ENDPOINT_ERROR", "8": "UNKNOWN_LOG_ENTITY"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER", "15": "COMPONENT_TYPE_GPON_TRANSCEIVER", "16": "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INTERMEDIATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_TYPE_UNDEFINED", "1": "SENSOR_VALUE_TYPE_OTHER", "2": "SENSOR_VALUE_TYPE_UNKNOWN", "3": "SENSOR_VALUE_TYPE_VOLTS_AC", "4": "SENSOR_VALUE_TYPE_VOLTS_DC", "5": "SENSOR_VALUE_TYPE_AMPERES", "6": "SENSOR_VALUE_TYPE_WATTS", "7": "SENSOR_VALUE_TYPE_HERTZ", "8": "SENSOR_VALUE_TYPE_CELSIUS", "9": "SENSOR_VALUE_TYPE_PERCENT_RH", "10": "SENSOR_VALUE_TYPE_RPM", "11": "SENSOR_VALUE_TYPE_CMM", "12": "SENSOR_VALUE_TYPE_TRUTH_VALUE"}}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_SCALE_UNDEFINED", "1": "SENSOR_VALUE_SCALE_YOCTO", "2": "SENSOR_VALUE_SCALE_ZEPTO", "3": "SENSOR_VALUE_SCALE_ATTO", "4": "SENSOR_VALUE_SCALE_FEMTO", "5": "SENSOR_VALUE_SCALE_PICO", "6": "SENSOR_VALUE_SCALE_NANO", "7": "SENSOR_VALUE_SCALE_MICRO", "8": "SENSOR_VALUE_SCALE_MILLI", "9": "SENSOR_VALUE_SCALE_UNITS", "10": "SENSOR_VALUE_SCALE_KILO", "11": "SENSOR_VALUE_SCALE_MEGA", "12": "SENSOR_VALUE_SCALE_GIGA", "13": "SENSOR_VALUE_SCALE_TERA", "14": "SENSOR_VALUE_SCALE_PETA", "15": "SENSOR_VALUE_SCALE_EXA", "16": "SENSOR_VALUE_SCALE_ZETTA", "17": "SENSOR_VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_4/hw_management_service.py b/grpc_robot/services/dmi/dmi_0_9_4/hw_management_service.py
new file mode 100644
index 0000000..5430d07
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_4/hw_management_service.py
@@ -0,0 +1,104 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from ...service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_management_service_pb2_grpc, hw_management_service_pb2, hw_pb2
+
+
+class NativeHWManagementService(Service):
+
+ prefix = 'hw_management_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_management_service_pb2_grpc.NativeHWManagementServiceStub)
+
+ # rpc StartManagingDevice(ModifiableComponent) returns(stream StartManagingDeviceResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_start_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StartManagingDevice, hw_pb2.ModifiableComponent, param_dict, **kwargs)
+
+ # rpc StopManagingDevice(StopManagingDeviceRequest) returns(StopManagingDeviceResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_stop_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StopManagingDevice, hw_management_service_pb2.StopManagingDeviceRequest, param_dict, **kwargs)
+
+ # rpc GetPhysicalInventory(PhysicalInventoryRequest) returns(stream PhysicalInventoryResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_physical_inventory(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetPhysicalInventory, hw_management_service_pb2.PhysicalInventoryRequest, param_dict, **kwargs)
+
+ # rpc GetHWComponentInfo(HWComponentInfoGetRequest) returns(stream HWComponentInfoGetResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetHWComponentInfo, hw_management_service_pb2.HWComponentInfoGetRequest, param_dict, **kwargs)
+
+ # rpc SetHWComponentInfo(HWComponentInfoSetRequest) returns(HWComponentInfoSetResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetHWComponentInfo, hw_management_service_pb2.HWComponentInfoSetRequest, param_dict, **kwargs)
+
+ # rpc GetManagedDevices(google.protobuf.Empty) returns(ManagedDevicesResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_managed_devices(self, **kwargs):
+ return self._grpc_helper(self.stub.GetManagedDevices, **kwargs)
+
+ # rpc SetLoggingEndpoint(SetLoggingEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetLoggingEndpoint, hw_management_service_pb2.SetLoggingEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetLoggingEndpoint(HardwareID) returns(GetLoggingEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLoggingEndpoint, hw_pb2.HardwareID, param_dict)
+
+ # rpc SetMsgBusEndpoint(SetMsgBusEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_msg_bus_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetMsgBusEndpoint, hw_management_service_pb2.SetMsgBusEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetMsgBusEndpoint(google.protobuf.Empty) returns(GetMsgBusEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_msg_bus_endpoint(self, **kwargs):
+ return self._grpc_helper(self.stub.GetMsgBusEndpoint, **kwargs)
+
+ # rpc GetLoggableEntities(GetLoggableEntitiesRequest) returns(GetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_loggable_entities(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLoggableEntities, hw_management_service_pb2.GetLoggableEntitiesRequest, param_dict, **kwargs)
+
+ # rpc SetLogLevel(SetLogLevelRequest) returns(SetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_log_level(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetLogLevel, hw_management_service_pb2.SetLogLevelRequest, param_dict, **kwargs)
+
+ # rpc GetLogLevel(GetLogLevelRequest) returns(GetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_log_level(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLogLevel, hw_management_service_pb2.GetLogLevelRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_5/__init__.py b/grpc_robot/services/dmi/dmi_0_9_5/__init__.py
new file mode 100644
index 0000000..6209d14
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_5/__init__.py
@@ -0,0 +1,17 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_1.hw_events_mgmt_service import *
+from ..dmi_0_9_4.hw_management_service import *
+from ..dmi_0_9_1.hw_metrics_mgmt_service import *
+from .sw_management_service import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_5/dmi.json b/grpc_robot/services/dmi/dmi_0_9_5/dmi.json
new file mode 100644
index 0000000..adb08de
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_5/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "Reason", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "WRONG_METRIC", "4": "WRONG_EVENT", "5": "LOGGING_ENDPOINT_ERROR", "6": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "7": "KAFKA_ENDPOINT_ERROR", "8": "UNKNOWN_LOG_ENTITY", "9": "ERROR_FETCHING_CONFIG", "10": "INVALID_CONFIG"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER", "15": "COMPONENT_TYPE_GPON_TRANSCEIVER", "16": "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INTERMEDIATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_TYPE_UNDEFINED", "1": "SENSOR_VALUE_TYPE_OTHER", "2": "SENSOR_VALUE_TYPE_UNKNOWN", "3": "SENSOR_VALUE_TYPE_VOLTS_AC", "4": "SENSOR_VALUE_TYPE_VOLTS_DC", "5": "SENSOR_VALUE_TYPE_AMPERES", "6": "SENSOR_VALUE_TYPE_WATTS", "7": "SENSOR_VALUE_TYPE_HERTZ", "8": "SENSOR_VALUE_TYPE_CELSIUS", "9": "SENSOR_VALUE_TYPE_PERCENT_RH", "10": "SENSOR_VALUE_TYPE_RPM", "11": "SENSOR_VALUE_TYPE_CMM", "12": "SENSOR_VALUE_TYPE_TRUTH_VALUE"}}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_SCALE_UNDEFINED", "1": "SENSOR_VALUE_SCALE_YOCTO", "2": "SENSOR_VALUE_SCALE_ZEPTO", "3": "SENSOR_VALUE_SCALE_ATTO", "4": "SENSOR_VALUE_SCALE_FEMTO", "5": "SENSOR_VALUE_SCALE_PICO", "6": "SENSOR_VALUE_SCALE_NANO", "7": "SENSOR_VALUE_SCALE_MICRO", "8": "SENSOR_VALUE_SCALE_MILLI", "9": "SENSOR_VALUE_SCALE_UNITS", "10": "SENSOR_VALUE_SCALE_KILO", "11": "SENSOR_VALUE_SCALE_MEGA", "12": "SENSOR_VALUE_SCALE_GIGA", "13": "SENSOR_VALUE_SCALE_TERA", "14": "SENSOR_VALUE_SCALE_PETA", "15": "SENSOR_VALUE_SCALE_EXA", "16": "SENSOR_VALUE_SCALE_ZETTA", "17": "SENSOR_VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_5/sw_management_service.py b/grpc_robot/services/dmi/dmi_0_9_5/sw_management_service.py
new file mode 100644
index 0000000..d9db6d9
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_5/sw_management_service.py
@@ -0,0 +1,56 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import sw_management_service_pb2_grpc, sw_management_service_pb2, hw_pb2
+
+
+class NativeSoftwareManagementService(Service):
+
+ prefix = 'sw_management_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=sw_management_service_pb2_grpc.NativeSoftwareManagementServiceStub)
+
+ # rpc GetSoftwareVersion(HardwareID) returns(GetSoftwareVersionInformationResponse);
+ @keyword
+ @is_connected
+ def sw_management_service_get_software_version(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetSoftwareVersion, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc DownloadImage(DownloadImageRequest) returns(stream ImageStatus);
+ @keyword
+ @is_connected
+ def sw_management_service_download_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DownloadImage, sw_management_service_pb2.DownloadImageRequest, param_dict, **kwargs)
+
+ # rpc ActivateImage(HardwareID) returns(stream ImageStatus);
+ @keyword
+ @is_connected
+ def sw_management_service_activate_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ActivateImage, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc RevertToStandbyImage(HardwareID) returns(stream ImageStatus);
+ @keyword
+ @is_connected
+ def sw_management_service_revert_to_standby_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RevertToStandbyImage, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc UpdateStartupConfiguration(ConfigRequest) returns(stream ConfigResponse);
+ @keyword
+ @is_connected
+ def sw_management_service_update_startup_configuration(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateStartupConfiguration, sw_management_service_pb2.ConfigRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_6/__init__.py b/grpc_robot/services/dmi/dmi_0_9_6/__init__.py
new file mode 100644
index 0000000..f700805
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_6/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_5 import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_6/dmi.json b/grpc_robot/services/dmi/dmi_0_9_6/dmi.json
new file mode 100644
index 0000000..3205f2c
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_6/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "Reason", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "WRONG_METRIC", "4": "WRONG_EVENT", "5": "LOGGING_ENDPOINT_ERROR", "6": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "7": "KAFKA_ENDPOINT_ERROR", "8": "UNKNOWN_LOG_ENTITY", "9": "ERROR_FETCHING_CONFIG", "10": "INVALID_CONFIG"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER", "15": "COMPONENT_TYPE_GPON_TRANSCEIVER", "16": "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INDETERMINATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_TYPE_UNDEFINED", "1": "SENSOR_VALUE_TYPE_OTHER", "2": "SENSOR_VALUE_TYPE_UNKNOWN", "3": "SENSOR_VALUE_TYPE_VOLTS_AC", "4": "SENSOR_VALUE_TYPE_VOLTS_DC", "5": "SENSOR_VALUE_TYPE_AMPERES", "6": "SENSOR_VALUE_TYPE_WATTS", "7": "SENSOR_VALUE_TYPE_HERTZ", "8": "SENSOR_VALUE_TYPE_CELSIUS", "9": "SENSOR_VALUE_TYPE_PERCENT_RH", "10": "SENSOR_VALUE_TYPE_RPM", "11": "SENSOR_VALUE_TYPE_CMM", "12": "SENSOR_VALUE_TYPE_TRUTH_VALUE"}}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_SCALE_UNDEFINED", "1": "SENSOR_VALUE_SCALE_YOCTO", "2": "SENSOR_VALUE_SCALE_ZEPTO", "3": "SENSOR_VALUE_SCALE_ATTO", "4": "SENSOR_VALUE_SCALE_FEMTO", "5": "SENSOR_VALUE_SCALE_PICO", "6": "SENSOR_VALUE_SCALE_NANO", "7": "SENSOR_VALUE_SCALE_MICRO", "8": "SENSOR_VALUE_SCALE_MILLI", "9": "SENSOR_VALUE_SCALE_UNITS", "10": "SENSOR_VALUE_SCALE_KILO", "11": "SENSOR_VALUE_SCALE_MEGA", "12": "SENSOR_VALUE_SCALE_GIGA", "13": "SENSOR_VALUE_SCALE_TERA", "14": "SENSOR_VALUE_SCALE_PETA", "15": "SENSOR_VALUE_SCALE_EXA", "16": "SENSOR_VALUE_SCALE_ZETTA", "17": "SENSOR_VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_8/__init__.py b/grpc_robot/services/dmi/dmi_0_9_8/__init__.py
new file mode 100644
index 0000000..6209d14
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_8/__init__.py
@@ -0,0 +1,17 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_1.hw_events_mgmt_service import *
+from ..dmi_0_9_4.hw_management_service import *
+from ..dmi_0_9_1.hw_metrics_mgmt_service import *
+from .sw_management_service import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_8/dmi.json b/grpc_robot/services/dmi/dmi_0_9_8/dmi.json
new file mode 100644
index 0000000..4959cf0
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_8/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER", "15": "COMPONENT_TYPE_GPON_TRANSCEIVER", "16": "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INDETERMINATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_TYPE_UNDEFINED", "1": "SENSOR_VALUE_TYPE_OTHER", "2": "SENSOR_VALUE_TYPE_UNKNOWN", "3": "SENSOR_VALUE_TYPE_VOLTS_AC", "4": "SENSOR_VALUE_TYPE_VOLTS_DC", "5": "SENSOR_VALUE_TYPE_AMPERES", "6": "SENSOR_VALUE_TYPE_WATTS", "7": "SENSOR_VALUE_TYPE_HERTZ", "8": "SENSOR_VALUE_TYPE_CELSIUS", "9": "SENSOR_VALUE_TYPE_PERCENT_RH", "10": "SENSOR_VALUE_TYPE_RPM", "11": "SENSOR_VALUE_TYPE_CMM", "12": "SENSOR_VALUE_TYPE_TRUTH_VALUE"}}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_SCALE_UNDEFINED", "1": "SENSOR_VALUE_SCALE_YOCTO", "2": "SENSOR_VALUE_SCALE_ZEPTO", "3": "SENSOR_VALUE_SCALE_ATTO", "4": "SENSOR_VALUE_SCALE_FEMTO", "5": "SENSOR_VALUE_SCALE_PICO", "6": "SENSOR_VALUE_SCALE_NANO", "7": "SENSOR_VALUE_SCALE_MICRO", "8": "SENSOR_VALUE_SCALE_MILLI", "9": "SENSOR_VALUE_SCALE_UNITS", "10": "SENSOR_VALUE_SCALE_KILO", "11": "SENSOR_VALUE_SCALE_MEGA", "12": "SENSOR_VALUE_SCALE_GIGA", "13": "SENSOR_VALUE_SCALE_TERA", "14": "SENSOR_VALUE_SCALE_PETA", "15": "SENSOR_VALUE_SCALE_EXA", "16": "SENSOR_VALUE_SCALE_ZETTA", "17": "SENSOR_VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "POLL_INTERVAL_UNSUPPORTED", "4": "INVALID_METRIC"}}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "INVALID_METRIC"}}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "INVALID_CONFIG"}}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM", "6": "OPERATION_ALREADY_IN_PROGRESS", "7": "UNKNOWN_DEVICE", "8": "DEVICE_NOT_REACHABLE"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR"}}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR"}}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "DEVICE_ALREADY_MANAGED", "2": "OPERATION_ALREADY_IN_PROGRESS", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR"}}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE"}}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "LOGGING_ENDPOINT_ERROR", "4": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "5": "MSGBUS_ENDPOINT_ERROR"}}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "INTERNAL_ERROR"}}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY"}}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY"}}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "ERROR_FETCHING_CONFIG", "4": "INVALID_CONFIG", "5": "OPERATION_ALREADY_IN_PROGRESS"}}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartupConfigInfoRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "StartupConfigInfoResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}, {"name": "GetStartupConfigurationInfo", "request": {"is_stream": false, "type": "StartupConfigInfoRequest", "lookup": true}, "response": {"is_stream": false, "type": "StartupConfigInfoResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_0_9_8/sw_management_service.py b/grpc_robot/services/dmi/dmi_0_9_8/sw_management_service.py
new file mode 100644
index 0000000..1807c0f
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_8/sw_management_service.py
@@ -0,0 +1,62 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import sw_management_service_pb2_grpc, sw_management_service_pb2, hw_pb2
+
+
+class NativeSoftwareManagementService(Service):
+
+ prefix = 'sw_management_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=sw_management_service_pb2_grpc.NativeSoftwareManagementServiceStub)
+
+ # rpc GetSoftwareVersion(HardwareID) returns(GetSoftwareVersionInformationResponse);
+ @keyword
+ @is_connected
+ def sw_management_service_get_software_version(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetSoftwareVersion, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc DownloadImage(DownloadImageRequest) returns(stream ImageStatus);
+ @keyword
+ @is_connected
+ def sw_management_service_download_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DownloadImage, sw_management_service_pb2.DownloadImageRequest, param_dict, **kwargs)
+
+ # rpc ActivateImage(HardwareID) returns(stream ImageStatus);
+ @keyword
+ @is_connected
+ def sw_management_service_activate_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ActivateImage, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc RevertToStandbyImage(HardwareID) returns(stream ImageStatus);
+ @keyword
+ @is_connected
+ def sw_management_service_revert_to_standby_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RevertToStandbyImage, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc UpdateStartupConfiguration(ConfigRequest) returns(stream ConfigResponse);
+ @keyword
+ @is_connected
+ def sw_management_service_update_startup_configuration(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateStartupConfiguration, sw_management_service_pb2.ConfigRequest, param_dict, **kwargs)
+
+ # rpc GetStartupConfigurationInfo(StartupConfigInfoRequest) returns(StartupConfigInfoResponse);
+ @keyword
+ @is_connected
+ def sw_management_service_get_startup_configuration_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetStartupConfigurationInfo, sw_management_service_pb2.StartupConfigInfoRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_0_9_9/__init__.py b/grpc_robot/services/dmi/dmi_0_9_9/__init__.py
new file mode 100644
index 0000000..1c90929
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_9/__init__.py
@@ -0,0 +1,14 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_8 import *
diff --git a/grpc_robot/services/dmi/dmi_0_9_9/dmi.json b/grpc_robot/services/dmi/dmi_0_9_9/dmi.json
new file mode 100644
index 0000000..4959cf0
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_0_9_9/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER", "15": "COMPONENT_TYPE_GPON_TRANSCEIVER", "16": "COMPONENT_TYPE_XGS_PON_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INDETERMINATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "SensorValueType", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_TYPE_UNDEFINED", "1": "SENSOR_VALUE_TYPE_OTHER", "2": "SENSOR_VALUE_TYPE_UNKNOWN", "3": "SENSOR_VALUE_TYPE_VOLTS_AC", "4": "SENSOR_VALUE_TYPE_VOLTS_DC", "5": "SENSOR_VALUE_TYPE_AMPERES", "6": "SENSOR_VALUE_TYPE_WATTS", "7": "SENSOR_VALUE_TYPE_HERTZ", "8": "SENSOR_VALUE_TYPE_CELSIUS", "9": "SENSOR_VALUE_TYPE_PERCENT_RH", "10": "SENSOR_VALUE_TYPE_RPM", "11": "SENSOR_VALUE_TYPE_CMM", "12": "SENSOR_VALUE_TYPE_TRUTH_VALUE"}}, {"name": "SensorValueScale", "type": "enum", "module": "hw", "values": {"0": "SENSOR_VALUE_SCALE_UNDEFINED", "1": "SENSOR_VALUE_SCALE_YOCTO", "2": "SENSOR_VALUE_SCALE_ZEPTO", "3": "SENSOR_VALUE_SCALE_ATTO", "4": "SENSOR_VALUE_SCALE_FEMTO", "5": "SENSOR_VALUE_SCALE_PICO", "6": "SENSOR_VALUE_SCALE_NANO", "7": "SENSOR_VALUE_SCALE_MICRO", "8": "SENSOR_VALUE_SCALE_MILLI", "9": "SENSOR_VALUE_SCALE_UNITS", "10": "SENSOR_VALUE_SCALE_KILO", "11": "SENSOR_VALUE_SCALE_MEGA", "12": "SENSOR_VALUE_SCALE_GIGA", "13": "SENSOR_VALUE_SCALE_TERA", "14": "SENSOR_VALUE_SCALE_PETA", "15": "SENSOR_VALUE_SCALE_EXA", "16": "SENSOR_VALUE_SCALE_ZETTA", "17": "SENSOR_VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "SensorValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "SensorValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "POLL_INTERVAL_UNSUPPORTED", "4": "INVALID_METRIC"}}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "INVALID_METRIC"}}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "INVALID_CONFIG"}}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM", "6": "OPERATION_ALREADY_IN_PROGRESS", "7": "UNKNOWN_DEVICE", "8": "DEVICE_NOT_REACHABLE"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR"}}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR"}}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "DEVICE_ALREADY_MANAGED", "2": "OPERATION_ALREADY_IN_PROGRESS", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR"}}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE"}}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "devices", "is_choice": false, "repeated": true, "type": "ModifiableComponent", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "LOGGING_ENDPOINT_ERROR", "4": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "5": "MSGBUS_ENDPOINT_ERROR"}}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "INTERNAL_ERROR"}}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY"}}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY"}}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "ERROR_FETCHING_CONFIG", "4": "INVALID_CONFIG", "5": "OPERATION_ALREADY_IN_PROGRESS"}}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}]}, {"name": "StartupConfigInfoRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR"}}, {"name": "StartupConfigInfoResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}, {"name": "GetStartupConfigurationInfo", "request": {"is_stream": false, "type": "StartupConfigInfoRequest", "lookup": true}, "response": {"is_stream": false, "type": "StartupConfigInfoResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_1_0_0/__init__.py b/grpc_robot/services/dmi/dmi_1_0_0/__init__.py
new file mode 100644
index 0000000..d03333b
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_1_0_0/__init__.py
@@ -0,0 +1,17 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..dmi_0_9_8.sw_management_service import *
+from .hw_events_mgmt_service import *
+from .hw_management_service import *
+from .hw_metrics_mgmt_service import *
diff --git a/grpc_robot/services/dmi/dmi_1_0_0/dmi.json b/grpc_robot/services/dmi/dmi_1_0_0/dmi.json
new file mode 100644
index 0000000..d4bbb96
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_1_0_0/dmi.json
@@ -0,0 +1 @@
+{"modules": [{"name": "commons", "imports": []}, {"name": "hw", "imports": ["timestamp"]}, {"name": "hw_metrics_mgmt_service", "imports": ["commons", "hw", "empty"]}, {"name": "hw_events_mgmt_service", "imports": ["commons", "hw", "timestamp", "empty"]}, {"name": "sw_image", "imports": ["commons"]}, {"name": "hw_management_service", "imports": ["commons", "hw", "empty"]}, {"name": "sw_management_service", "imports": ["commons", "hw", "sw_image"]}], "data_types": [{"name": "Status", "type": "enum", "module": "commons", "values": {"0": "UNDEFINED_STATUS", "1": "OK_STATUS", "2": "ERROR_STATUS"}}, {"name": "LogLevel", "type": "enum", "module": "commons", "values": {"0": "TRACE", "1": "DEBUG", "2": "INFO", "3": "WARN", "4": "ERROR"}}, {"name": "Uuid", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HardwareID", "type": "message", "module": "hw", "fields": [{"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Uri", "type": "message", "module": "hw", "fields": [{"name": "uri", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ComponentType", "type": "enum", "module": "hw", "values": {"0": "COMPONENT_TYPE_UNDEFINED", "1": "COMPONENT_TYPE_UNKNOWN", "2": "COMPONENT_TYPE_CHASSIS", "3": "COMPONENT_TYPE_BACKPLANE", "4": "COMPONENT_TYPE_CONTAINER", "5": "COMPONENT_TYPE_POWER_SUPPLY", "6": "COMPONENT_TYPE_FAN", "7": "COMPONENT_TYPE_SENSOR", "8": "COMPONENT_TYPE_MODULE", "9": "COMPONENT_TYPE_PORT", "10": "COMPONENT_TYPE_CPU", "11": "COMPONENT_TYPE_BATTERY", "12": "COMPONENT_TYPE_STORAGE", "13": "COMPONENT_TYPE_MEMORY", "14": "COMPONENT_TYPE_TRANSCEIVER"}}, {"name": "ComponentAdminState", "type": "enum", "module": "hw", "values": {"0": "COMP_ADMIN_STATE_UNDEFINED", "1": "COMP_ADMIN_STATE_UNKNOWN", "2": "COMP_ADMIN_STATE_LOCKED", "3": "COMP_ADMIN_STATE_SHUTTING_DOWN", "4": "COMP_ADMIN_STATE_UNLOCKED"}}, {"name": "ComponentOperState", "type": "enum", "module": "hw", "values": {"0": "COMP_OPER_STATE_UNDEFINED", "1": "COMP_OPER_STATE_UNKNOWN", "2": "COMP_OPER_STATE_DISABLED", "3": "COMP_OPER_STATE_ENABLED", "4": "COMP_OPER_STATE_TESTING"}}, {"name": "ComponentUsageState", "type": "enum", "module": "hw", "values": {"0": "COMP_USAGE_STATE_UNDEFINED", "1": "COMP_USAGE_STATE_UNKNOWN", "2": "COMP_USAGE_STATE_IDLE", "3": "COMP_USAGE_STATE_ACTIVE", "4": "COMP_USAGE_STATE_BUSY"}}, {"name": "ComponentAlarmState", "type": "enum", "module": "hw", "values": {"0": "COMP_ALARM_STATE_UNDEFINED", "1": "COMP_ALARM_STATE_UNKNOWN", "2": "COMP_ALARM_STATE_UNDER_REPAIR", "3": "COMP_ALARM_STATE_CRITICAL", "4": "COMP_ALARM_STATE_MAJOR", "5": "COMP_ALARM_STATE_MINOR", "6": "COMP_ALARM_STATE_WARNING", "7": "COMP_ALARM_STATE_INDETERMINATE"}}, {"name": "ComponentStandbyState", "type": "enum", "module": "hw", "values": {"0": "COMP_STANDBY_STATE_UNDEFINED", "1": "COMP_STANDBY_STATE_UNKNOWN", "2": "COMP_STANDBY_STATE_HOT", "3": "COMP_STANDBY_STATE_COLD", "4": "COMP_STANDBY_STATE_PROVIDING_SERVICE"}}, {"name": "ComponentState", "type": "message", "module": "hw", "fields": [{"name": "state_last_changed", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}, {"name": "oper_state", "is_choice": false, "repeated": false, "type": "ComponentOperState", "lookup": true}, {"name": "usage_state", "is_choice": false, "repeated": false, "type": "ComponentUsageState", "lookup": true}, {"name": "alarm_state", "is_choice": false, "repeated": false, "type": "ComponentAlarmState", "lookup": true}, {"name": "standby_state", "is_choice": false, "repeated": false, "type": "ComponentStandbyState", "lookup": true}]}, {"name": "DataValueType", "type": "enum", "module": "hw", "values": {"0": "VALUE_TYPE_UNDEFINED", "1": "VALUE_TYPE_OTHER", "2": "VALUE_TYPE_UNKNOWN", "3": "VALUE_TYPE_VOLTS_AC", "4": "VALUE_TYPE_VOLTS_DC", "5": "VALUE_TYPE_AMPERES", "6": "VALUE_TYPE_WATTS", "7": "VALUE_TYPE_HERTZ", "8": "VALUE_TYPE_CELSIUS", "9": "VALUE_TYPE_PERCENT_RH", "10": "VALUE_TYPE_RPM", "11": "VALUE_TYPE_CMM", "12": "VALUE_TYPE_TRUTH_VALUE", "13": "VALUE_TYPE_PERCENT", "14": "VALUE_TYPE_METERS", "15": "VALUE_TYPE_BYTES"}}, {"name": "ValueScale", "type": "enum", "module": "hw", "values": {"0": "VALUE_SCALE_UNDEFINED", "1": "VALUE_SCALE_YOCTO", "2": "VALUE_SCALE_ZEPTO", "3": "VALUE_SCALE_ATTO", "4": "VALUE_SCALE_FEMTO", "5": "VALUE_SCALE_PICO", "6": "VALUE_SCALE_NANO", "7": "VALUE_SCALE_MICRO", "8": "VALUE_SCALE_MILLI", "9": "VALUE_SCALE_UNITS", "10": "VALUE_SCALE_KILO", "11": "VALUE_SCALE_MEGA", "12": "VALUE_SCALE_GIGA", "13": "VALUE_SCALE_TERA", "14": "VALUE_SCALE_PETA", "15": "VALUE_SCALE_EXA", "16": "VALUE_SCALE_ZETTA", "17": "VALUE_SCALE_YOTTA"}}, {"name": "SensorStatus", "type": "enum", "module": "hw", "values": {"0": "SENSOR_STATUS_UNDEFINED", "1": "SENSOR_STATUS_OK", "2": "SENSOR_STATUS_UNAVAILABLE", "3": "SENSOR_STATUS_NONOPERATIONAL"}}, {"name": "ComponentSensorData", "type": "message", "module": "hw", "fields": [{"name": "value", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "type", "is_choice": false, "repeated": false, "type": "DataValueType", "lookup": true}, {"name": "scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "precision", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "status", "is_choice": false, "repeated": false, "type": "SensorStatus", "lookup": true}, {"name": "units_display", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "timestamp", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "value_update_rate", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "data_type", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ConnectorType", "type": "enum", "module": "hw", "values": {"0": "CONNECTOR_TYPE_UNDEFINED", "1": "RJ45", "2": "FIBER_LC", "3": "FIBER_SC_PC", "4": "FIBER_MPO", "5": "RS232"}}, {"name": "Speed", "type": "enum", "module": "hw", "values": {"0": "SPEED_UNDEFINED", "1": "DYNAMIC", "2": "GIGABIT_1", "3": "GIGABIT_10", "4": "GIGABIT_25", "5": "GIGABIT_40", "6": "GIGABIT_100", "7": "GIGABIT_400", "8": "MEGABIT_2500", "9": "MEGABIT_1250"}}, {"name": "Protocol", "type": "enum", "module": "hw", "values": {"0": "PROTOCOL_UNDEFINED", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "GFAST", "6": "SERIAL", "7": "EPON", "8": "BITS"}}, {"name": "PortComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "connector_type", "is_choice": false, "repeated": false, "type": "ConnectorType", "lookup": true}, {"name": "speed", "is_choice": false, "repeated": false, "type": "Speed", "lookup": true}, {"name": "protocol", "is_choice": false, "repeated": false, "type": "Protocol", "lookup": true}, {"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ContainerComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "physical_label", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SupportedVoltage", "type": "enum", "module": "hw", "values": {"0": "SUPPORTED_VOLTAGE_UNDEFINED", "1": "V48", "2": "V230", "3": "V115"}}, {"name": "PsuComponentAttributes", "type": "message", "module": "hw", "fields": [{"name": "supported_voltage", "is_choice": false, "repeated": false, "type": "SupportedVoltage", "lookup": true}]}, {"name": "FormFactor", "type": "enum", "module": "hw", "values": {"0": "FORM_FACTOR_UNKNOWN", "1": "QSFP", "2": "QSFP_PLUS", "3": "QSFP28", "4": "SFP", "5": "SFP_PLUS", "6": "XFP", "7": "CFP4", "8": "CFP2", "9": "CPAK", "10": "X2", "11": "OTHER", "12": "CFP", "13": "CFP2_ACO", "14": "CFP2_DCO"}}, {"name": "Type", "type": "enum", "module": "hw", "values": {"0": "TYPE_UNKNOWN", "1": "ETHERNET", "2": "GPON", "3": "XGPON", "4": "XGSPON", "5": "CPON", "6": "NG_PON2", "7": "EPON"}}, {"name": "TransceiverComponentsAttributes", "type": "message", "module": "hw", "fields": [{"name": "form_factor", "is_choice": false, "repeated": false, "type": "FormFactor", "lookup": true}, {"name": "trans_type", "is_choice": false, "repeated": false, "type": "Type", "lookup": true}, {"name": "max_distance", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}, {"name": "max_distance_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}, {"name": "rx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "tx_wavelength", "is_choice": false, "repeated": true, "type": "uint32", "lookup": false}, {"name": "wavelength_scale", "is_choice": false, "repeated": false, "type": "ValueScale", "lookup": true}]}, {"name": "Component", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "children", "is_choice": false, "repeated": true, "type": "Component", "lookup": true}, {"name": "hardware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "firmware_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "software_rev", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "serial_num", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "mfg_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "model_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "is_fru", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "mfg_date", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ComponentState", "lookup": true}, {"name": "sensor_data", "is_choice": false, "repeated": true, "type": "ComponentSensorData", "lookup": true}, {"name": "specific", "is_choice": true, "cases": [{"name": "port_attr", "type": "PortComponentAttributes", "lookup": true}, {"name": "container_attr", "type": "ContainerComponentAttributes", "lookup": true}, {"name": "psu_attr", "type": "PsuComponentAttributes", "lookup": true}, {"name": "transceiver_attr", "type": "TransceiverComponentsAttributes", "lookup": true}]}]}, {"name": "Hardware", "type": "message", "module": "hw", "fields": [{"name": "last_change", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "root", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "last_booted", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}]}, {"name": "ModifiableComponent", "type": "message", "module": "hw", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "class", "is_choice": false, "repeated": false, "type": "ComponentType", "lookup": true}, {"name": "parent", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "parent_rel_pos", "is_choice": false, "repeated": false, "type": "int32", "lookup": false}, {"name": "alias", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "asset_id", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "uri", "is_choice": false, "repeated": false, "type": "Uri", "lookup": true}, {"name": "admin_state", "is_choice": false, "repeated": false, "type": "ComponentAdminState", "lookup": true}]}, {"name": "MetricNames", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "METRIC_NAME_UNDEFINED", "1": "METRIC_FAN_SPEED", "100": "METRIC_CPU_TEMP", "101": "METRIC_CPU_USAGE_PERCENTAGE", "200": "METRIC_TRANSCEIVER_TEMP", "201": "METRIC_TRANSCEIVER_VOLTAGE", "202": "METRIC_TRANSCEIVER_BIAS", "203": "METRIC_TRANSCEIVER_RX_POWER", "204": "METRIC_TRANSCEIVER_TX_POWER", "205": "METRIC_TRANSCEIVER_WAVELENGTH", "300": "METRIC_DISK_TEMP", "301": "METRIC_DISK_CAPACITY", "302": "METRIC_DISK_USAGE", "303": "METRIC_DISK_USAGE_PERCENTAGE", "304": "METRIC_DISK_READ_WRITE_PERCENTAGE", "305": "METRIC_DISK_FAULTY_CELLS_PERCENTAGE", "400": "METRIC_RAM_TEMP", "401": "METRIC_RAM_CAPACITY", "402": "METRIC_RAM_USAGE", "403": "METRIC_RAM_USAGE_PERCENTAGE", "500": "METRIC_POWER_MAX", "501": "METRIC_POWER_USAGE", "502": "METRIC_POWER_USAGE_PERCENTAGE", "600": "METRIC_INNER_SURROUNDING_TEMP"}}, {"name": "MetricConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "poll_interval", "is_choice": false, "repeated": false, "type": "uint32", "lookup": false}]}, {"name": "MetricsConfig", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metrics", "is_choice": false, "repeated": true, "type": "MetricConfig", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListMetricsResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metrics", "is_choice": false, "repeated": false, "type": "MetricsConfig", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricsConfigurationRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "MetricsConfig", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "POLL_INTERVAL_UNSUPPORTED", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "MetricsConfigurationResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "MetricMetaData", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Metric", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}, {"name": "metric_metadata", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "value", "is_choice": false, "repeated": false, "type": "ComponentSensorData", "lookup": true}]}, {"name": "GetMetricRequest", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "meta_data", "is_choice": false, "repeated": false, "type": "MetricMetaData", "lookup": true}, {"name": "metric_id", "is_choice": false, "repeated": false, "type": "MetricNames", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_metrics_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "INVALID_METRIC", "5": "DEVICE_UNREACHABLE"}}, {"name": "GetMetricResponse", "type": "message", "module": "hw_metrics_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "metric", "is_choice": false, "repeated": false, "type": "Metric", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventIds", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "EVENT_NAME_UNDEFINED", "100": "EVENT_TRANSCEIVER_PLUG_OUT", "101": "EVENT_TRANSCEIVER_PLUG_IN", "102": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD", "103": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD", "104": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD", "105": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD", "106": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD", "107": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD", "108": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD", "109": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD", "110": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD", "111": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD", "112": "EVENT_TRANSCEIVER_FAILURE", "113": "EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED", "114": "EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED", "115": "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED", "116": "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED", "117": "EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED", "118": "EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED", "119": "EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED", "120": "EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED", "121": "EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED", "122": "EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED", "123": "EVENT_TRANSCEIVER_FAILURE_RECOVERED", "200": "EVENT_PSU_PLUG_OUT", "201": "EVENT_PSU_PLUG_IN", "202": "EVENT_PSU_FAILURE", "203": "EVENT_PSU_FAILURE_RECOVERED", "300": "EVENT_FAN_FAILURE", "301": "EVENT_FAN_PLUG_OUT", "302": "EVENT_FAN_PLUG_IN", "303": "EVENT_FAN_FAILURE_RECOVERED", "400": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL", "401": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL", "402": "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "403": "EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED", "500": "EVENT_HW_DEVICE_RESET", "501": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL", "502": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL", "503": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED", "504": "EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED", "505": "EVENT_HW_DEVICE_REBOOT"}}, {"name": "ValueType", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "val", "is_choice": true, "cases": [{"name": "int_val", "type": "int64", "lookup": false}, {"name": "uint_val", "type": "uint64", "lookup": false}, {"name": "float_val", "type": "float", "lookup": false}]}]}, {"name": "WaterMarks", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "high", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "low", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}]}, {"name": "Thresholds", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "threshold", "is_choice": true, "cases": [{"name": "upper", "type": "WaterMarks", "lookup": true}, {"name": "lower", "type": "WaterMarks", "lookup": true}]}]}, {"name": "ThresholdInformation", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "observed_value", "is_choice": false, "repeated": false, "type": "ValueType", "lookup": true}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "is_configured", "is_choice": false, "repeated": false, "type": "bool", "lookup": false}, {"name": "thresholds", "is_choice": false, "repeated": false, "type": "Thresholds", "lookup": true}]}, {"name": "EventsCfg", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "items", "is_choice": false, "repeated": true, "type": "EventCfg", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "ListEventsResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "events", "is_choice": false, "repeated": false, "type": "EventsCfg", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventsConfigurationRequest", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "operation", "is_choice": true, "cases": [{"name": "changes", "type": "EventsCfg", "lookup": true}, {"name": "reset_to_default", "type": "bool", "lookup": false}]}]}, {"name": "Reason", "type": "enum", "module": "hw_events_mgmt_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "INVALID_CONFIG", "4": "DEVICE_UNREACHABLE"}}, {"name": "EventsConfigurationResponse", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EventMetaData", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Event", "type": "message", "module": "hw_events_mgmt_service", "fields": [{"name": "event_metadata", "is_choice": false, "repeated": false, "type": "EventMetaData", "lookup": true}, {"name": "event_id", "is_choice": false, "repeated": false, "type": "EventIds", "lookup": true}, {"name": "raised_ts", "is_choice": false, "repeated": false, "type": "google.protobuf.Timestamp", "lookup": true}, {"name": "threshold_info", "is_choice": false, "repeated": false, "type": "ThresholdInformation", "lookup": true}, {"name": "add_info", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageVersion", "type": "message", "module": "sw_image", "fields": [{"name": "image_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageInformation", "type": "message", "module": "sw_image", "fields": [{"name": "image", "is_choice": false, "repeated": false, "type": "ImageVersion", "lookup": true}, {"name": "image_install_script", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "image_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "sha256sum", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ImageState", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_STATE", "1": "COPYING_IMAGE", "2": "INSTALLING_IMAGE", "3": "COMMITTING_IMAGE", "4": "REBOOTING_DEVICE", "5": "UPGRADE_COMPLETE", "6": "UPGRADE_FAILED", "7": "ACTIVATION_COMPLETE", "8": "ACTIVATION_FAILED"}}, {"name": "Reason", "type": "enum", "module": "sw_image", "values": {"0": "UNDEFINED_REASON", "1": "ERROR_IN_REQUEST", "2": "INTERNAL_ERROR", "3": "DEVICE_IN_WRONG_STATE", "4": "INVALID_IMAGE", "5": "WRONG_IMAGE_CHECKSUM", "6": "OPERATION_ALREADY_IN_PROGRESS", "7": "UNKNOWN_DEVICE", "8": "DEVICE_NOT_REACHABLE"}}, {"name": "ImageStatus", "type": "message", "module": "sw_image", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "state", "is_choice": false, "repeated": false, "type": "ImageState", "lookup": true}, {"name": "description", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "PhysicalInventoryRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "PhysicalInventoryResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "inventory", "is_choice": false, "repeated": false, "type": "Hardware", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoGetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INTERNAL_ERROR", "4": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoGetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "component", "is_choice": false, "repeated": false, "type": "Component", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "HWComponentInfoSetRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "component_name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "changes", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "UNKNOWN_COMPONENT", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR", "5": "DEVICE_UNREACHABLE"}}, {"name": "HWComponentInfoSetResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "DEVICE_ALREADY_MANAGED", "2": "OPERATION_ALREADY_IN_PROGRESS", "3": "INVALID_PARAMS", "4": "INTERNAL_ERROR", "5": "AUTHENTICATION_FAILURE", "6": "INCOMPATIBLE_DEVICE"}}, {"name": "StartManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StopManagingDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "name", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE"}}, {"name": "StopManagingDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "ManagedDeviceInfo", "type": "message", "module": "hw_management_service", "fields": [{"name": "info", "is_choice": false, "repeated": false, "type": "ModifiableComponent", "lookup": true}, {"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "INTERNAL_ERROR"}}, {"name": "ManagedDevicesResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "devices", "is_choice": false, "repeated": true, "type": "ManagedDeviceInfo", "lookup": true}]}, {"name": "SetLoggingEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "LOGGING_ENDPOINT_ERROR", "4": "LOGGING_ENDPOINT_PROTOCOL_ERROR", "5": "MSGBUS_ENDPOINT_ERROR", "6": "DEVICE_UNREACHABLE"}}, {"name": "SetRemoteEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetLoggingEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "logging_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "logging_protocol", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SetMsgBusEndpointRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "INTERNAL_ERROR", "2": "DEVICE_UNREACHABLE"}}, {"name": "GetMsgBusEndpointResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "msgbus_endpoint", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "EntitiesLogLevel", "type": "message", "module": "hw_management_service", "fields": [{"name": "logLevel", "is_choice": false, "repeated": false, "type": "LogLevel", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "SetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "loglevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "SetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLogLevelRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "entities", "is_choice": false, "repeated": true, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "UNKNOWN_LOG_ENTITY", "4": "DEVICE_UNREACHABLE"}}, {"name": "GetLogLevelResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "logLevels", "is_choice": false, "repeated": true, "type": "EntitiesLogLevel", "lookup": true}, {"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "GetLoggableEntitiesRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Heartbeat", "type": "message", "module": "hw_management_service", "fields": [{"name": "heartbeat_signature", "is_choice": false, "repeated": false, "type": "fixed32", "lookup": false}]}, {"name": "RebootDeviceRequest", "type": "message", "module": "hw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "hw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "RebootDeviceResponse", "type": "message", "module": "hw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "SoftwareVersionInformation", "type": "message", "module": "sw_management_service", "fields": [{"name": "active_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}, {"name": "standby_versions", "is_choice": false, "repeated": true, "type": "ImageVersion", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "GetSoftwareVersionInformationResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "info", "is_choice": false, "repeated": false, "type": "SoftwareVersionInformation", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "DownloadImageRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "image_info", "is_choice": false, "repeated": false, "type": "ImageInformation", "lookup": true}]}, {"name": "ConfigRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "ERROR_FETCHING_CONFIG", "4": "INVALID_CONFIG", "5": "OPERATION_ALREADY_IN_PROGRESS", "6": "DEVICE_UNREACHABLE"}}, {"name": "ConfigResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}, {"name": "StartupConfigInfoRequest", "type": "message", "module": "sw_management_service", "fields": [{"name": "device_uuid", "is_choice": false, "repeated": false, "type": "Uuid", "lookup": true}]}, {"name": "Reason", "type": "enum", "module": "sw_management_service", "values": {"0": "UNDEFINED_REASON", "1": "UNKNOWN_DEVICE", "2": "INTERNAL_ERROR", "3": "DEVICE_UNREACHABLE"}}, {"name": "StartupConfigInfoResponse", "type": "message", "module": "sw_management_service", "fields": [{"name": "status", "is_choice": false, "repeated": false, "type": "Status", "lookup": true}, {"name": "reason", "is_choice": false, "repeated": false, "type": "Reason", "lookup": true}, {"name": "config_url", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "version", "is_choice": false, "repeated": false, "type": "string", "lookup": false}, {"name": "reason_detail", "is_choice": false, "repeated": false, "type": "string", "lookup": false}]}], "services": [{"name": "NativeMetricsManagementService", "module": "hw_metrics_mgmt_service", "rpcs": [{"name": "ListMetrics", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListMetricsResponse", "lookup": true}}, {"name": "UpdateMetricsConfiguration", "request": {"is_stream": false, "type": "MetricsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "MetricsConfigurationResponse", "lookup": true}}, {"name": "GetMetric", "request": {"is_stream": false, "type": "GetMetricRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetMetricResponse", "lookup": true}}, {"name": "StreamMetrics", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": true, "type": "Metric", "lookup": true}}]}, {"name": "NativeEventsManagementService", "module": "hw_events_mgmt_service", "rpcs": [{"name": "ListEvents", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "ListEventsResponse", "lookup": true}}, {"name": "UpdateEventsConfiguration", "request": {"is_stream": false, "type": "EventsConfigurationRequest", "lookup": true}, "response": {"is_stream": false, "type": "EventsConfigurationResponse", "lookup": true}}, {"name": "StreamEvents", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": true, "type": "Event", "lookup": true}}]}, {"name": "NativeHWManagementService", "module": "hw_management_service", "rpcs": [{"name": "StartManagingDevice", "request": {"is_stream": false, "type": "ModifiableComponent", "lookup": true}, "response": {"is_stream": true, "type": "StartManagingDeviceResponse", "lookup": true}}, {"name": "StopManagingDevice", "request": {"is_stream": false, "type": "StopManagingDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "StopManagingDeviceResponse", "lookup": true}}, {"name": "GetManagedDevices", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "ManagedDevicesResponse", "lookup": true}}, {"name": "GetPhysicalInventory", "request": {"is_stream": false, "type": "PhysicalInventoryRequest", "lookup": true}, "response": {"is_stream": true, "type": "PhysicalInventoryResponse", "lookup": true}}, {"name": "GetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoGetRequest", "lookup": true}, "response": {"is_stream": true, "type": "HWComponentInfoGetResponse", "lookup": true}}, {"name": "SetHWComponentInfo", "request": {"is_stream": false, "type": "HWComponentInfoSetRequest", "lookup": true}, "response": {"is_stream": false, "type": "HWComponentInfoSetResponse", "lookup": true}}, {"name": "SetLoggingEndpoint", "request": {"is_stream": false, "type": "SetLoggingEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetLoggingEndpoint", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetLoggingEndpointResponse", "lookup": true}}, {"name": "SetMsgBusEndpoint", "request": {"is_stream": false, "type": "SetMsgBusEndpointRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetRemoteEndpointResponse", "lookup": true}}, {"name": "GetMsgBusEndpoint", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "GetMsgBusEndpointResponse", "lookup": true}}, {"name": "GetLoggableEntities", "request": {"is_stream": false, "type": "GetLoggableEntitiesRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "SetLogLevel", "request": {"is_stream": false, "type": "SetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "SetLogLevelResponse", "lookup": true}}, {"name": "GetLogLevel", "request": {"is_stream": false, "type": "GetLogLevelRequest", "lookup": true}, "response": {"is_stream": false, "type": "GetLogLevelResponse", "lookup": true}}, {"name": "HeartbeatCheck", "request": {"is_stream": false, "type": "google.protobuf.Empty", "lookup": false}, "response": {"is_stream": false, "type": "Heartbeat", "lookup": true}}, {"name": "RebootDevice", "request": {"is_stream": false, "type": "RebootDeviceRequest", "lookup": true}, "response": {"is_stream": false, "type": "RebootDeviceResponse", "lookup": true}}]}, {"name": "NativeSoftwareManagementService", "module": "sw_management_service", "rpcs": [{"name": "GetSoftwareVersion", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": false, "type": "GetSoftwareVersionInformationResponse", "lookup": true}}, {"name": "DownloadImage", "request": {"is_stream": false, "type": "DownloadImageRequest", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "ActivateImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "RevertToStandbyImage", "request": {"is_stream": false, "type": "HardwareID", "lookup": true}, "response": {"is_stream": true, "type": "ImageStatus", "lookup": true}}, {"name": "UpdateStartupConfiguration", "request": {"is_stream": false, "type": "ConfigRequest", "lookup": true}, "response": {"is_stream": true, "type": "ConfigResponse", "lookup": true}}, {"name": "GetStartupConfigurationInfo", "request": {"is_stream": false, "type": "StartupConfigInfoRequest", "lookup": true}, "response": {"is_stream": false, "type": "StartupConfigInfoResponse", "lookup": true}}]}]}
\ No newline at end of file
diff --git a/grpc_robot/services/dmi/dmi_1_0_0/hw_events_mgmt_service.py b/grpc_robot/services/dmi/dmi_1_0_0/hw_events_mgmt_service.py
new file mode 100644
index 0000000..ff4f093
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_1_0_0/hw_events_mgmt_service.py
@@ -0,0 +1,44 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_events_mgmt_service_pb2_grpc, hw_events_mgmt_service_pb2, hw_pb2
+
+
+class NativeEventsManagementService(Service):
+
+ prefix = 'hw_event_mgmt_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_events_mgmt_service_pb2_grpc.NativeEventsManagementServiceStub)
+
+ # rpc ListEvents(HardwareID) returns(ListEventsResponse);
+ @keyword
+ @is_connected
+ def hw_event_mgmt_service_list_events(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListEvents, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc UpdateEventsConfiguration(EventsConfigurationRequest) returns(EventsConfigurationResponse);
+ @keyword
+ @is_connected
+ def hw_event_mgmt_service_update_events_configuration(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateEventsConfiguration, hw_events_mgmt_service_pb2.EventsConfigurationRequest, param_dict, **kwargs)
+
+ # rpc StreamEvents(google.protobuf.Empty) returns(stream Event);
+ @keyword
+ @is_connected
+ def hw_event_mgmt_service_stream_events(self, **kwargs):
+ return self._grpc_helper(self.stub.StreamEvents, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_1_0_0/hw_management_service.py b/grpc_robot/services/dmi/dmi_1_0_0/hw_management_service.py
new file mode 100644
index 0000000..9d1a2dd
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_1_0_0/hw_management_service.py
@@ -0,0 +1,116 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from ...service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_management_service_pb2_grpc, hw_management_service_pb2, hw_pb2
+
+
+class NativeHWManagementService(Service):
+
+ prefix = 'hw_management_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_management_service_pb2_grpc.NativeHWManagementServiceStub)
+
+ # rpc StartManagingDevice(ModifiableComponent) returns(stream StartManagingDeviceResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_start_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StartManagingDevice, hw_pb2.ModifiableComponent, param_dict, **kwargs)
+
+ # rpc StopManagingDevice(StopManagingDeviceRequest) returns(StopManagingDeviceResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_stop_managing_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StopManagingDevice, hw_management_service_pb2.StopManagingDeviceRequest, param_dict, **kwargs)
+
+ # rpc GetPhysicalInventory(PhysicalInventoryRequest) returns(stream PhysicalInventoryResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_physical_inventory(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetPhysicalInventory, hw_management_service_pb2.PhysicalInventoryRequest, param_dict, **kwargs)
+
+ # rpc GetHWComponentInfo(HWComponentInfoGetRequest) returns(stream HWComponentInfoGetResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetHWComponentInfo, hw_management_service_pb2.HWComponentInfoGetRequest, param_dict, **kwargs)
+
+ # rpc SetHWComponentInfo(HWComponentInfoSetRequest) returns(HWComponentInfoSetResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_hw_component_info(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetHWComponentInfo, hw_management_service_pb2.HWComponentInfoSetRequest, param_dict, **kwargs)
+
+ # rpc GetManagedDevices(google.protobuf.Empty) returns(ManagedDevicesResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_managed_devices(self, **kwargs):
+ return self._grpc_helper(self.stub.GetManagedDevices, **kwargs)
+
+ # rpc SetLoggingEndpoint(SetLoggingEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetLoggingEndpoint, hw_management_service_pb2.SetLoggingEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetLoggingEndpoint(HardwareID) returns(GetLoggingEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_logging_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLoggingEndpoint, hw_pb2.HardwareID, param_dict)
+
+ # rpc SetMsgBusEndpoint(SetMsgBusEndpointRequest) returns(SetRemoteEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_msg_bus_endpoint(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetMsgBusEndpoint, hw_management_service_pb2.SetMsgBusEndpointRequest, param_dict, **kwargs)
+
+ # rpc GetMsgBusEndpoint(google.protobuf.Empty) returns(GetMsgBusEndpointResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_msg_bus_endpoint(self, **kwargs):
+ return self._grpc_helper(self.stub.GetMsgBusEndpoint, **kwargs)
+
+ # rpc GetLoggableEntities(GetLoggableEntitiesRequest) returns(GetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_loggable_entities(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLoggableEntities, hw_management_service_pb2.GetLoggableEntitiesRequest, param_dict, **kwargs)
+
+ # rpc SetLogLevel(SetLogLevelRequest) returns(SetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_set_log_level(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetLogLevel, hw_management_service_pb2.SetLogLevelRequest, param_dict, **kwargs)
+
+ # rpc GetLogLevel(GetLogLevelRequest) returns(GetLogLevelResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_get_log_level(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLogLevel, hw_management_service_pb2.GetLogLevelRequest, param_dict, **kwargs)
+
+ # rpc HeartbeatCheck(google.protobuf.Empty) returns (Heartbeat);
+ @keyword
+ @is_connected
+ def hw_management_service_heartbeat_check(self, **kwargs):
+ return self._grpc_helper(self.stub.HeartbeatCheck, **kwargs)
+
+ # rpc RebootDevice(RebootDeviceRequest) returns(RebootDeviceResponse);
+ @keyword
+ @is_connected
+ def hw_management_service_reboot_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RebootDevice, hw_management_service_pb2.RebootDeviceRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/dmi/dmi_1_0_0/hw_metrics_mgmt_service.py b/grpc_robot/services/dmi/dmi_1_0_0/hw_metrics_mgmt_service.py
new file mode 100644
index 0000000..bc983ec
--- /dev/null
+++ b/grpc_robot/services/dmi/dmi_1_0_0/hw_metrics_mgmt_service.py
@@ -0,0 +1,50 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from dmi import hw_metrics_mgmt_service_pb2_grpc, hw_metrics_mgmt_service_pb2, hw_pb2
+
+
+class NativeMetricsManagementService(Service):
+
+ prefix = 'hw_metrics_mgmt_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=hw_metrics_mgmt_service_pb2_grpc.NativeMetricsManagementServiceStub)
+
+ # rpc ListMetrics(HardwareID) returns(ListMetricsResponse);
+ @keyword
+ @is_connected
+ def hw_metrics_mgmt_service_list_metrics(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListMetrics, hw_pb2.HardwareID, param_dict, **kwargs)
+
+ # rpc UpdateMetricsConfiguration(MetricsConfigurationRequest) returns(MetricsConfigurationResponse);
+ @keyword
+ @is_connected
+ def hw_metrics_mgmt_service_update_metrics_configuration(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateMetricsConfiguration, hw_metrics_mgmt_service_pb2.MetricsConfigurationRequest, param_dict, **kwargs)
+
+ # rpc GetMetric(GetMetricRequest) returns(GetMetricResponse);
+ @keyword
+ @is_connected
+ def hw_metrics_mgmt_service_get_metric(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetMetric, hw_metrics_mgmt_service_pb2.GetMetricRequest, param_dict, **kwargs)
+
+ # rpc StreamMetrics(google.protobuf.Empty) returns(stream Metric);
+ @keyword
+ @is_connected
+ def hw_metrics_mgmt_service_stream_metrics(self, **kwargs):
+ return self._grpc_helper(self.stub.StreamMetrics, **kwargs)
diff --git a/grpc_robot/services/service.py b/grpc_robot/services/service.py
new file mode 100644
index 0000000..da799c0
--- /dev/null
+++ b/grpc_robot/services/service.py
@@ -0,0 +1,254 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+import grpc
+from grpc import _channel, ChannelConnectivity
+from decorator import decorator
+
+from ..tools.protobuf_to_dict import protobuf_to_dict, dict_to_protobuf
+from ..tools.robot_tools import Collections
+from google.protobuf import empty_pb2
+
+
+# decorator to check if connection is open
+@decorator
+def is_connected(library_function, *args, **kwargs):
+ try:
+ assert args[0].ctx.grpc_channel is not None
+ grpc.channel_ready_future(args[0].ctx.grpc_channel).result(timeout=10)
+ except (AssertionError, grpc.FutureTimeoutError):
+ raise ConnectionError('not connected to a gRPC channel')
+
+ return library_function(*args, **kwargs)
+
+
+# unfortunately conversation from snake-case to camel-case does not work for all keyword names, so we define a mapping dict
+kw_name_mapping = {
+ 'GetHwComponentInfo': 'GetHWComponentInfo',
+ 'SetHwComponentInfo': 'SetHWComponentInfo'
+}
+
+one_of_note = """*Note*: Bold dictionary keys are cases of an ONEOF type that is not transmitted in gRPC.\n"""
+named_parameters_note = """*Named parameters*:\n
+- return_enum_integer: <bool> or <string>; Whether or not to return the enum values as integer values rather than their labels. Default: _${FALSE}_ or _false_.\n
+- return_defaults: <bool> or <string>; Whether or not to return the default values. Default: _${FALSE}_ or _false_.\n
+- timeout: <int> or <string>; Number of seconds to wait for the response. Default: The timeout value set by keywords _Connection Open_ and _Connection Parameters Set_."""
+
+
+class Service(object):
+
+ prefix = ''
+
+ def __init__(self, ctx, stub=None):
+ super().__init__()
+ self.ctx = ctx
+
+ try:
+ self.stub = stub(channel=ctx.grpc_channel)
+ except AttributeError:
+ self.stub = None
+
+ def get_next_type_def(self, type_name, module):
+
+ next_type_defs = [d for d in self.ctx.protobuf['data_types'] if d['name'] == type_name]
+
+ if not next_type_defs:
+ return None
+
+ if len(next_type_defs) > 1:
+ next_type_def = [d for d in next_type_defs if d['module'] == module]
+
+ if next_type_def:
+ return next_type_def[0]
+
+ else:
+ return next_type_defs[0]
+
+ else:
+ return next_type_defs[0]
+
+ def lookup_type_def(self, _type_def, _indent='', _lookup_table=None, enum_indent=''):
+
+ _lookup_table = _lookup_table or []
+
+ if _type_def['name'] in _lookup_table:
+ return '< recursive type: ' + _type_def['name'] + ' >'
+ else:
+ _lookup_table.append(_type_def['name'])
+
+ if _type_def['type'] == 'message':
+
+ doc_string = '{ # type: %s\n' % _type_def['name']
+ _indent += ' '
+
+ for field in _type_def['fields']:
+ if field.get('is_choice', False):
+ doc_string += self.get_field_doc(field, _indent, _lookup_table[:], _type_def['module'], field['name'])
+ else:
+ doc_string += "%s'%s': %s\n" % (_indent, field['name'], self.get_field_doc(field, _indent, _lookup_table[:], _type_def['module']))
+
+ return doc_string + _indent[:-2] + '}'
+
+ if _type_def['type'] == 'enum':
+
+ try:
+ k_len = 0
+ for k, v in _type_def['values'].items():
+ k_len = max(len(k), k_len)
+ enum = (' |\n %s%s' % (_indent, enum_indent)).join(['%s%s - %s' % ((k_len - len(k)) * ' ', k, v) for k, v in _type_def['values'].items()])
+
+ except AttributeError:
+ enum = ' | '.join(_type_def['values'])
+
+ return '< %s >' % enum
+
+ return ''
+
+ def get_field_doc(self, _type_def, _indent, _lookup_table, module, choice_name=''):
+
+ doc_string = ''
+
+ _indent = (_indent + ' ') if _type_def.get('repeated', False) else _indent
+
+ if _type_def.get('is_choice', False):
+ for case in _type_def['cases']:
+ # doc_string += "%s'*%s*' (ONEOF _%s_): %s\n" % (_indent, case['name'], choice_name, self.get_field_doc(case, _indent, _lookup_table[:], module))
+ doc_string += "%s'_ONEOF %s_: *%s*': %s\n" % (_indent, choice_name, case['name'], self.get_field_doc(case, _indent, _lookup_table[:], module))
+
+ elif _type_def.get('lookup', False):
+ try:
+ next_type_def = self.get_next_type_def(_type_def['type'], module=module)
+ if next_type_def is not None:
+ doc_string += self.lookup_type_def(next_type_def, _indent, _lookup_table, (len(_type_def['name']) + 5) * ' ')
+ else:
+ doc_string += "<%s>," % _type_def['type']
+
+ except KeyError:
+ doc_string += _type_def['type']
+ else:
+ doc_string += "<%s>," % _type_def['type']
+
+ if _type_def.get('repeated', False):
+ doc_string = '[ # list of:\n' + _indent + doc_string + '\n' + _indent[:-2] + ']'
+
+ return doc_string
+
+ def get_rpc_documentation(self, type_def, module):
+
+ indent = ' ' if type_def['is_stream'] else ''
+
+ if type_def['lookup']:
+ next_type_def = self.get_next_type_def(type_def['type'], module)
+ if next_type_def is not None:
+ doc_string = self.lookup_type_def(next_type_def, indent)
+ else:
+ doc_string = type_def['type'] + '\n'
+ else:
+ doc_string = type_def['type'] + '\n'
+
+ if type_def['is_stream']:
+ return '[ # list of:\n' + indent + doc_string + '\n]'
+ else:
+ return doc_string
+
+ def get_documentation(self, keyword_name):
+
+ keyword_name = Collections.to_camel_case(keyword_name.replace(self.prefix, ''), True)
+ keyword_name = kw_name_mapping.get(keyword_name, keyword_name)
+
+ try:
+ service = Collections.list_get_dict_by_value(self.ctx.protobuf.get('services', []), 'name', self.__class__.__name__)
+ except KeyError:
+ return 'no documentation available'
+
+ rpc = Collections.list_get_dict_by_value(service.get('rpcs', []), 'name', keyword_name)
+
+ doc_string = 'RPC _%s_ from _%s_.\n' % (rpc['name'], service['name'])
+ doc_string += '\n\n*Parameters*:\n'
+
+ for attr, attr_str in [('request', '- param_dict'), ('named_params', None), ('response', '*Return*')]:
+
+ if rpc.get(attr) is not None:
+ rpc_doc = '\n'.join(['| %s' % line for line in self.get_rpc_documentation(rpc.get(attr), service['module']).splitlines()])
+
+ if rpc_doc == '| google.protobuf.Empty':
+ doc_string += '_none_\n\n'
+ continue
+
+ doc_string += '\n%s:\n' % attr_str if '_ONEOF' not in rpc_doc else '\n%s: %s\n' % (attr_str, one_of_note)
+ doc_string += rpc_doc + '\n'
+
+ elif attr == 'named_params':
+ doc_string += named_parameters_note
+
+ return doc_string
+
+ @staticmethod
+ def to_protobuf(type_def, param_dict):
+ try:
+ return dict_to_protobuf(type_def or empty_pb2.Empty, param_dict or {})
+ except Exception as e:
+ raise ValueError('parameter dictionary does not match the ProtoBuf type definition: %s' % e)
+
+ def _process_response(self, response, index=None, **kwargs):
+
+ debug_text = 'RESPONSE' if index is None else 'RESPONSE-NEXT ' if index else 'RESPONSE-STREAM'
+
+ return_enum_integer = bool(str(kwargs.get('return_enum_integer', False)).lower() == 'true')
+ return_defaults = bool(str(kwargs.get('return_defaults', False)).lower() == 'true')
+
+ self.ctx.logger.debug('%s : data=%s' % (debug_text, response))
+ _response = protobuf_to_dict(response, use_enum_labels=not return_enum_integer, including_default_value_fields=return_defaults)
+
+ return _response
+
+ def _grpc_helper(self, func, arg_type=None, param_dict=None, **kwargs):
+
+ def generate_stream(arg, data_list):
+
+ for idx, data in enumerate(data_list):
+ _protobuf = self.to_protobuf(arg, data)
+ debug_text = 'REQUEST-NEXT :' if idx else 'REQUEST-STREAM : method=%s;' % func._method.decode()
+ self.ctx.logger.debug('%s data=%s' % (debug_text, _protobuf))
+ yield _protobuf
+
+ if isinstance(param_dict, list):
+ response = func(generate_stream(arg_type, param_dict), timeout=int(kwargs.get('timeout') or self.ctx.timeout))
+ else:
+ protobuf = self.to_protobuf(arg_type, param_dict)
+ self.ctx.logger.debug('REQUEST : method=%s; data=%s' % (func._method.decode(), protobuf))
+ response = func(protobuf, timeout=int(kwargs.get('timeout') or self.ctx.timeout))
+
+ try:
+
+ # streamed response is of type <grpc._channel._MultiThreadedRendezvous> and must be handle as list
+ if isinstance(response, _channel._MultiThreadedRendezvous):
+
+ return_list = []
+ for idx, list_item in enumerate(response):
+ return_list.append(self._process_response(list_item, index=idx, **kwargs))
+
+ return return_list
+
+ else:
+
+ return self._process_response(response, **kwargs)
+
+ except grpc.RpcError as e:
+ if e.code().name == 'DEADLINE_EXCEEDED':
+ self.ctx.logger.error('TimeoutError (%ss): %s' % (kwargs.get('timeout') or self.ctx.timeout, e))
+ raise TimeoutError('no response within %s seconds' % (kwargs.get('timeout') or self.ctx.timeout))
+ else:
+ self.ctx.logger.error(e)
+ raise e
+
diff --git a/grpc_robot/services/voltha/voltha_4_0_13/__init__.py b/grpc_robot/services/voltha/voltha_4_0_13/__init__.py
new file mode 100644
index 0000000..66de09c
--- /dev/null
+++ b/grpc_robot/services/voltha/voltha_4_0_13/__init__.py
@@ -0,0 +1,18 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from .extension import *
+from .health_service import *
+from .openolt import *
+from .ponsim import *
+from .voltha_service import *
diff --git a/grpc_robot/services/voltha/voltha_4_0_13/extension.py b/grpc_robot/services/voltha/voltha_4_0_13/extension.py
new file mode 100644
index 0000000..ef379a1
--- /dev/null
+++ b/grpc_robot/services/voltha/voltha_4_0_13/extension.py
@@ -0,0 +1,41 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from voltha_protos import extensions_pb2_grpc, extensions_pb2
+
+
+class Extension(Service):
+
+ prefix = 'extension_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=extensions_pb2_grpc.ExtensionStub)
+
+ # rpc GetExtValue(SingleGetValueRequest) returns (SingleGetValueResponse);
+ @keyword
+ @is_connected
+ def extension_get_ext_value(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetExtValue, extensions_pb2.SingleGetValueRequest, param_dict, **kwargs)
+
+ # rpc SetExtValue(SingleSetValueRequest) returns (SingleSetValueResponse);
+ @keyword
+ @is_connected
+ def extension_set_ext_value(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetExtValue, extensions_pb2.SingleSetValueRequest, param_dict, **kwargs)
+
+
+
diff --git a/grpc_robot/services/voltha/voltha_4_0_13/health_service.py b/grpc_robot/services/voltha/voltha_4_0_13/health_service.py
new file mode 100644
index 0000000..72bb4f5
--- /dev/null
+++ b/grpc_robot/services/voltha/voltha_4_0_13/health_service.py
@@ -0,0 +1,32 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from voltha_protos import health_pb2_grpc
+
+
+class HealthService(Service):
+
+ prefix = 'health_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=health_pb2_grpc.HealthServiceStub)
+
+ # rpc GetHealthStatus(google.protobuf.Empty) returns (HealthStatus) {...};
+ @keyword
+ @is_connected
+ def hw_management_service_get_health_status(self, **kwargs):
+ return self._grpc_helper(self.stub.GetHealthStatus, **kwargs)
diff --git a/grpc_robot/services/voltha/voltha_4_0_13/openolt.py b/grpc_robot/services/voltha/voltha_4_0_13/openolt.py
new file mode 100644
index 0000000..2b6a26c
--- /dev/null
+++ b/grpc_robot/services/voltha/voltha_4_0_13/openolt.py
@@ -0,0 +1,200 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from voltha_protos import openolt_pb2_grpc, openolt_pb2, tech_profile_pb2, ext_config_pb2
+
+
+class Openolt(Service):
+
+ prefix = 'open_olt_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=openolt_pb2_grpc.OpenoltStub)
+
+ # rpc DisableOlt(Empty) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_disable_olt(self, **kwargs):
+ return self._grpc_helper(self.stub.DisableOlt, **kwargs)
+
+ # rpc ReenableOlt(Empty) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_reenable_olt(self, **kwargs):
+ return self._grpc_helper(self.stub.ReenableOlt, **kwargs)
+
+ # rpc ActivateOnu(Onu) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_activate_onu(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ActivateOnu, openolt_pb2.Onu, param_dict, **kwargs)
+
+ # rpc DeactivateOnu(Onu) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_deactivate_onu(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DeactivateOnu, openolt_pb2.Onu, param_dict, **kwargs)
+
+ # rpc DeleteOnu(Onu) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_delete_onu(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DeleteOnu, openolt_pb2.Onu, param_dict, **kwargs)
+
+ # rpc OmciMsgOut(OmciMsg) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_omci_msg_out(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.OmciMsgOut, openolt_pb2.OmciMsg, param_dict, **kwargs)
+
+ # rpc OnuPacketOut(OnuPacket) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_onu_packet_out(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.OnuPacketOut, openolt_pb2.OnuPacket, param_dict, **kwargs)
+
+ # rpc UplinkPacketOut(UplinkPacket) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_uplink_packet_out(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UplinkPacketOut, openolt_pb2.UplinkPacket, param_dict, **kwargs)
+
+ # rpc FlowAdd(Flow) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_flow_add(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.FlowAdd, openolt_pb2.Flow, param_dict, **kwargs)
+
+ # rpc FlowRemove(Flow) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_flow_remove(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.FlowRemove, openolt_pb2.Flow, param_dict, **kwargs)
+
+ # rpc HeartbeatCheck(Empty) returns (Heartbeat) {...};
+ @keyword
+ @is_connected
+ def open_olt_heartbeat_check(self, **kwargs):
+ return self._grpc_helper(self.stub.HeartbeatCheck, **kwargs)
+
+ # rpc EnablePonIf(Interface) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_enable_pon_if(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.EnablePonIf, openolt_pb2.Interface, param_dict, **kwargs)
+
+ # rpc DisablePonIf(Interface) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_disable_pon_if(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DisablePonIf, openolt_pb2.Interface, param_dict, **kwargs)
+
+ # rpc GetDeviceInfo(Empty) returns (DeviceInfo) {...};
+ @keyword
+ @is_connected
+ def open_olt_get_device_info(self, **kwargs):
+ return self._grpc_helper(self.stub.GetDeviceInfo, **kwargs)
+
+ # rpc Reboot(Empty) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_reboot(self, **kwargs):
+ return self._grpc_helper(self.stub.Reboot, **kwargs)
+
+ # rpc CollectStatistics(Empty) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_collect_statistics(self, **kwargs):
+ return self._grpc_helper(self.stub.CollectStatistics, **kwargs)
+
+ # rpc GetOnuStatistics(Onu) returns (OnuStatistics) {...};
+ @keyword
+ @is_connected
+ def open_olt_get_onu_statistics(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetOnuStatistics, openolt_pb2.Onu, param_dict, **kwargs)
+
+ # rpc GetGemPortStatistics(OnuPacket) returns (GemPortStatistics) {...};
+ @keyword
+ @is_connected
+ def open_olt_get_gem_port_statistics(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetGemPortStatistics, openolt_pb2.OnuPacket, param_dict, **kwargs)
+
+ # rpc CreateTrafficSchedulers(tech_profile.TrafficSchedulers) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_create_traffic_schedulers(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.CreateTrafficSchedulers, tech_profile_pb2.TrafficSchedulers, param_dict, **kwargs)
+
+ # rpc RemoveTrafficSchedulers(tech_profile.TrafficSchedulers) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_remove_traffic_schedulers(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RemoveTrafficSchedulers, tech_profile_pb2.TrafficSchedulers, param_dict, **kwargs)
+
+ # rpc CreateTrafficQueues(tech_profile.TrafficQueues) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_create_traffic_queues(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.CreateTrafficQueues, tech_profile_pb2.TrafficQueues, param_dict, **kwargs)
+
+ # rpc RemoveTrafficQueues(tech_profile.TrafficQueues) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_remove_traffic_queues(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RemoveTrafficQueues, tech_profile_pb2.TrafficQueues, param_dict, **kwargs)
+
+ # rpc EnableIndication(Empty) returns (stream Indication) {...};
+ @keyword
+ @is_connected
+ def open_olt_enable_indication(self, **kwargs):
+ return self._grpc_helper(self.stub.EnableIndication, **kwargs)
+
+ # rpc PerformGroupOperation(Group) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_perform_group_operation(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.PerformGroupOperation, openolt_pb2.Group, param_dict, **kwargs)
+
+ # rpc DeleteGroup(Group) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_delete_group(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DeleteGroup, openolt_pb2.Group, param_dict, **kwargs)
+
+ # rpc GetExtValue(ValueParam) returns (common.ReturnValues) {...};
+ @keyword
+ @is_connected
+ def open_olt_get_ext_value(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetExtValue, openolt_pb2.ValueParam, param_dict, **kwargs)
+
+ # rpc OnuItuPonAlarmSet(config.OnuItuPonAlarm) returns (Empty) {...};
+ @keyword
+ @is_connected
+ def open_olt_onu_itu_pon_alarm_set(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.OnuItuPonAlarmSet, ext_config_pb2.OnuItuPonAlarm, param_dict, **kwargs)
+
+ # rpc GetLogicalOnuDistanceZero(Onu) returns (OnuLogicalDistance) {...};
+ @keyword
+ @is_connected
+ def open_olt_get_logical_onu_distance_zero(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLogicalOnuDistanceZero, openolt_pb2.Onu, param_dict, **kwargs)
+
+ # rpc GetLogicalOnuDistance(Onu) returns (OnuLogicalDistance) {...};
+ @keyword
+ @is_connected
+ def open_olt_get_logical_onu_distance(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLogicalOnuDistanceF, openolt_pb2.Onu, param_dict, **kwargs)
diff --git a/grpc_robot/services/voltha/voltha_4_0_13/ponsim.py b/grpc_robot/services/voltha/voltha_4_0_13/ponsim.py
new file mode 100644
index 0000000..579a66d
--- /dev/null
+++ b/grpc_robot/services/voltha/voltha_4_0_13/ponsim.py
@@ -0,0 +1,56 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from voltha_protos import ponsim_pb2_grpc, ponsim_pb2
+
+
+class PonSim(Service):
+
+ prefix = 'pon_sim_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=ponsim_pb2_grpc.PonSimStub)
+
+ # rpc SendFrame(PonSimFrame) returns (google.protobuf.Empty) {}
+ @keyword
+ @is_connected
+ def pon_sim_send_frame(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SendFrame, ponsim_pb2.PonSimFrame, param_dict, **kwargs)
+
+ # rpc ReceiveFrames(google.protobuf.Empty) returns (stream PonSimFrame) {}
+ @keyword
+ @is_connected
+ def pon_sim_receive_frames(self, **kwargs):
+ return self._grpc_helper(self.stub.ReceiveFrames, **kwargs)
+
+ # rpc GetDeviceInfo(google.protobuf.Empty) returns(PonSimDeviceInfo) {}
+ @keyword
+ @is_connected
+ def pon_sim_get_device_info(self, **kwargs):
+ return self._grpc_helper(self.stub.GetDeviceInfo, **kwargs)
+
+ # rpc UpdateFlowTable(FlowTable) returns(google.protobuf.Empty) {}
+ @keyword
+ @is_connected
+ def pon_sim_update_flow_table(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateFlowTable, ponsim_pb2.FlowTable, param_dict, **kwargs)
+
+ # rpc GetStats(google.protobuf.Empty) returns(PonSimMetrics) {}
+ @keyword
+ @is_connected
+ def pon_sim_get_stats(self, **kwargs):
+ return self._grpc_helper(self.stub.GetStats, **kwargs)
diff --git a/grpc_robot/services/voltha/voltha_4_0_13/voltha_service.py b/grpc_robot/services/voltha/voltha_4_0_13/voltha_service.py
new file mode 100644
index 0000000..66c5099
--- /dev/null
+++ b/grpc_robot/services/voltha/voltha_4_0_13/voltha_service.py
@@ -0,0 +1,404 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from robot.api.deco import keyword
+from grpc_robot.services.service import is_connected
+
+from grpc_robot.services.service import Service
+from voltha_protos import voltha_pb2_grpc, voltha_pb2, common_pb2, openflow_13_pb2
+
+
+class VolthaService(Service):
+
+ prefix = 'voltha_service_'
+
+ def __init__(self, ctx):
+ super().__init__(ctx=ctx, stub=voltha_pb2_grpc.VolthaServiceStub)
+
+ # rpc GetMembership(google.protobuf.Empty) returns(Membership) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_membership(self, **kwargs):
+ return self._grpc_helper(self.stub.GetMembership, **kwargs)
+
+ # rpc UpdateMembership(Membership) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_update_membership(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateMembership, voltha_pb2.Membership, param_dict, **kwargs)
+
+ # rpc GetVoltha(google.protobuf.Empty) returns(Voltha) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_voltha(self, **kwargs):
+ return self._grpc_helper(self.stub.GetVoltha, **kwargs)
+
+ # rpc ListCoreInstances(google.protobuf.Empty) returns(CoreInstances) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_core_instances(self, **kwargs):
+ return self._grpc_helper(self.stub.ListCoreInstances, **kwargs)
+
+ # rpc GetCoreInstance(common.ID) returns(CoreInstance) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_core_instance(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetCoreInstance, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ListAdapters(google.protobuf.Empty) returns(Adapters) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_adapters(self, **kwargs):
+ return self._grpc_helper(self.stub.ListAdapters, **kwargs)
+
+ # rpc ListLogicalDevices(google.protobuf.Empty) returns(LogicalDevices) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_logical_devices(self, **kwargs):
+ return self._grpc_helper(self.stub.ListLogicalDevices, **kwargs)
+
+ # rpc GetLogicalDevice(common.ID) returns(LogicalDevice) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_logical_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLogicalDevice, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ListLogicalDevicePorts(common.ID) returns(LogicalPorts) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_logical_device_ports(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListLogicalDevicePorts, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc GetLogicalDevicePort(LogicalPortId) returns(LogicalPort) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_logical_device_port(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetLogicalDevicePort, voltha_pb2.LogicalPortId, param_dict, **kwargs)
+
+ # rpc EnableLogicalDevicePort(LogicalPortId) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_enable_logical_device_port(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.EnableLogicalDevicePort, voltha_pb2.LogicalPortId, param_dict, **kwargs)
+
+ # rpc DisableLogicalDevicePort(LogicalPortId) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_disable_logical_device_port(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DisableLogicalDevicePort, voltha_pb2.LogicalPortId, param_dict, **kwargs)
+
+ # rpc ListLogicalDeviceFlows(common.ID) returns(openflow_13.Flows) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_logical_device_flows(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListLogicalDeviceFlows, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc UpdateLogicalDeviceFlowTable(openflow_13.FlowTableUpdate) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_update_logical_device_flow_table(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateLogicalDeviceFlowTable, openflow_13_pb2.FlowTableUpdate, param_dict, **kwargs)
+
+ # rpc UpdateLogicalDeviceMeterTable(openflow_13.MeterModUpdate) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_update_logical_device_meter_table(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateLogicalDeviceMeterTable, openflow_13_pb2.MeterModUpdate, param_dict, **kwargs)
+
+ # rpc ListLogicalDeviceMeters(common.ID) returns (openflow_13.Meters) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_logical_device_meters(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListLogicalDeviceMeters, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ListLogicalDeviceFlowGroups(common.ID) returns(openflow_13.FlowGroups) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_logical_device_flow_groups(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListLogicalDeviceFlowGroups, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc UpdateLogicalDeviceFlowGroupTable(openflow_13.FlowGroupTableUpdate) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_update_logical_device_flow_group_table(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateLogicalDeviceFlowGroupTable, openflow_13_pb2.FlowGroupTableUpdate, param_dict, **kwargs)
+
+ # rpc ListDevices(google.protobuf.Empty) returns(Devices) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_devices(self, **kwargs):
+ return self._grpc_helper(self.stub.ListDevices, **kwargs)
+
+ # rpc ListDeviceIds(google.protobuf.Empty) returns(common.IDs) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_device_ids(self, **kwargs):
+ return self._grpc_helper(self.stub.ListDeviceIds, **kwargs)
+
+ # rpc ReconcileDevices(common.IDs) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_reconcile_devices(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ReconcileDevices, common_pb2.IDs, param_dict, **kwargs)
+
+ # rpc GetDevice(common.ID) returns(Device) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetDevice, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc CreateDevice(Device) returns(Device) {...};
+ @keyword
+ @is_connected
+ def voltha_service_create_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.CreateDevice, voltha_pb2.Device, param_dict, **kwargs)
+
+ # rpc EnableDevice(common.ID) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_enable_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.EnableDevice, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc DisableDevice(common.ID) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_disable_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DisableDevice, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc RebootDevice(common.ID) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_reboot_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RebootDevice, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc DeleteDevice(common.ID) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_delete_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DeleteDevice, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ForceDeleteDevice(common.ID) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_force_delete_device(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ForceDeleteDevice, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc DownloadImage(ImageDownload) returns(common.OperationResp) {...};
+ @keyword
+ @is_connected
+ def voltha_service_download_image(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DownloadImage, voltha_pb2.ImageDownload, param_dict, **kwargs)
+
+ # rpc GetImageDownloadStatus(ImageDownload) returns(ImageDownload) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_image_download_status(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetImageDownloadStatus, voltha_pb2.ImageDownload, param_dict, **kwargs)
+
+ # rpc GetImageDownload(ImageDownload) returns(ImageDownload) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_image_download(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetImageDownload, voltha_pb2.ImageDownload, param_dict, **kwargs)
+
+ # rpc ListImageDownloads(common.ID) returns(ImageDownloads) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_image_downloads(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListImageDownloads, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc CancelImageDownload(ImageDownload) returns(common.OperationResp) {...};
+ @keyword
+ @is_connected
+ def voltha_service_cancel_image_download(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.CancelImageDownload, voltha_pb2.ImageDownload, param_dict, **kwargs)
+
+ # rpc ActivateImageUpdate(ImageDownload) returns(common.OperationResp) {...};
+ @keyword
+ @is_connected
+ def voltha_service_activate_image_update(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ActivateImageUpdate, voltha_pb2.ImageDownload, param_dict, **kwargs)
+
+ # rpc RevertImageUpdate(ImageDownload) returns(common.OperationResp) {...};
+ @keyword
+ @is_connected
+ def voltha_service_revert_image_update(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.RevertImageUpdate, voltha_pb2.ImageDownload, param_dict, **kwargs)
+
+ # rpc ListDevicePorts(common.ID) returns(Ports) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_device_ports(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListDevicePorts, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ListDevicePmConfigs(common.ID) returns(PmConfigs) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_device_pm_configs(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListDevicePmConfigs, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc UpdateDevicePmConfigs(voltha.PmConfigs) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_update_device_pm_configs(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateDevicePmConfigs, voltha_pb2.PmConfigs, param_dict, **kwargs)
+
+ # rpc ListDeviceFlows(common.ID) returns(openflow_13.Flows) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_device_flows(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListDeviceFlows, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ListDeviceFlowGroups(common.ID) returns(openflow_13.FlowGroups) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_device_flow_groups(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.ListDeviceFlowGroups, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ListDeviceTypes(google.protobuf.Empty) returns(DeviceTypes) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_device_types(self, **kwargs):
+ return self._grpc_helper(self.stub.ListDeviceTypes, **kwargs)
+
+ # rpc GetDeviceType(common.ID) returns(DeviceType) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_device_type(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetDeviceType, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc ListDeviceGroups(google.protobuf.Empty) returns(DeviceGroups) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_device_groups(self, **kwargs):
+ return self._grpc_helper(self.stub.ListDeviceGroups, **kwargs)
+
+ # rpc StreamPacketsOut(stream openflow_13.PacketOut) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_stream_packets_out(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StreamPacketsOut, openflow_13_pb2.PacketOut, param_dict, **kwargs)
+
+ # rpc ReceivePacketsIn(google.protobuf.Empty) returns(stream openflow_13.PacketIn) {...};
+ @keyword
+ @is_connected
+ def voltha_service_receive_packets_in(self, **kwargs):
+ return self._grpc_helper(self.stub.ReceivePacketsIn, **kwargs)
+
+ # rpc ReceiveChangeEvents(google.protobuf.Empty) returns(stream openflow_13.ChangeEvent) {...};
+ @keyword
+ @is_connected
+ def voltha_service_receive_change_events(self, **kwargs):
+ return self._grpc_helper(self.stub.ReceiveChangeEvents, **kwargs)
+
+ # rpc GetDeviceGroup(common.ID) returns(DeviceGroup) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_device_group(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetDeviceGroup, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc CreateEventFilter(EventFilter) returns(EventFilter) {...};
+ @keyword
+ @is_connected
+ def voltha_service_create_event_filter(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.CreateEventFilter, voltha_pb2.EventFilter, param_dict, **kwargs)
+
+ # rpc GetEventFilter(common.ID) returns(EventFilters) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_event_filter(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetEventFilter, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc UpdateEventFilter(EventFilter) returns(EventFilter) {...};
+ @keyword
+ @is_connected
+ def voltha_service_update_event_filter(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.UpdateEventFilter, voltha_pb2.EventFilter, param_dict, **kwargs)
+
+ # rpc DeleteEventFilter(EventFilter) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_delete_event_filter(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DeleteEventFilter, voltha_pb2.EventFilter, param_dict, **kwargs)
+
+ # rpc ListEventFilters(google.protobuf.Empty) returns(EventFilters) {...};
+ @keyword
+ @is_connected
+ def voltha_service_list_event_filters(self, **kwargs):
+ return self._grpc_helper(self.stub.ListEventFilters, **kwargs)
+
+ # rpc GetImages(common.ID) returns(Images) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_images(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetImages, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc SelfTest(common.ID) returns(SelfTestResponse) {...};
+ @keyword
+ @is_connected
+ def voltha_service_self_test(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SelfTest, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc GetMibDeviceData(common.ID) returns(omci.MibDeviceData) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_mib_device_data(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetMibDeviceData, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc GetAlarmDeviceData(common.ID) returns(omci.AlarmDeviceData) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_alarm_device_data(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetAlarmDeviceData, common_pb2.ID, param_dict, **kwargs)
+
+ # rpc SimulateAlarm(SimulateAlarmRequest) returns(common.OperationResp) {...};
+ @keyword
+ @is_connected
+ def voltha_service_simulate_alarm(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SimulateAlarm, voltha_pb2.SimulateAlarmRequest, param_dict, **kwargs)
+
+ # rpc Subscribe (OfAgentSubscriber) returns (OfAgentSubscriber) {...};
+ @keyword
+ @is_connected
+ def voltha_service_subscribe(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.Subscribe, voltha_pb2.OfAgentSubscriber, param_dict, **kwargs)
+
+ # rpc EnablePort(voltha.Port) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_enable_port(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.EnablePort, voltha_pb2.Port, param_dict, **kwargs)
+
+ # rpc DisablePort(voltha.Port) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_disable_port(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.DisablePort, voltha_pb2.Port, param_dict, **kwargs)
+
+ # rpc GetExtValue(common.ValueSpecifier) returns(common.ReturnValues) {...};
+ @keyword
+ @is_connected
+ def voltha_service_get_ext_value(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.GetExtValue, common_pb2.ValueSpecifier, param_dict, **kwargs)
+
+ # rpc SetExtValue(ValueSet) returns(google.protobuf.Empty) {...};
+ @keyword
+ @is_connected
+ def voltha_service_set_ext_value(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.SetExtValue, voltha_pb2.ValueSet, param_dict, **kwargs)
+
+ # rpc StartOmciTestAction(OmciTestRequest) returns(TestResponse) {...};
+ @keyword
+ @is_connected
+ def voltha_service_start_omci_test_action(self, param_dict, **kwargs):
+ return self._grpc_helper(self.stub.StartOmciTestAction, voltha_pb2.OmciTestRequest, param_dict, **kwargs)
diff --git a/grpc_robot/services/voltha/voltha_4_2_0/__init__.py b/grpc_robot/services/voltha/voltha_4_2_0/__init__.py
new file mode 100644
index 0000000..d482d83
--- /dev/null
+++ b/grpc_robot/services/voltha/voltha_4_2_0/__init__.py
@@ -0,0 +1,18 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from ..voltha_4_0_13.extension import *
+from ..voltha_4_0_13.health_service import *
+from ..voltha_4_0_13.openolt import *
+from ..voltha_4_0_13.ponsim import *
+from ..voltha_4_0_13.voltha_service import *
diff --git a/grpc_robot/tools/__init__.py b/grpc_robot/tools/__init__.py
new file mode 100644
index 0000000..b1ed822
--- /dev/null
+++ b/grpc_robot/tools/__init__.py
@@ -0,0 +1,13 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
diff --git a/grpc_robot/tools/dmi_tools.py b/grpc_robot/tools/dmi_tools.py
new file mode 100644
index 0000000..5bdb168
--- /dev/null
+++ b/grpc_robot/tools/dmi_tools.py
@@ -0,0 +1,84 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from grpc_robot.grpc_robot import _package_version_get
+
+from dmi import hw_metrics_mgmt_service_pb2, hw_events_mgmt_service_pb2
+from ..tools.protobuf_to_dict import protobuf_to_dict
+
+
+class DmiTools(object):
+ """
+ Tools for the device-management-interface, e.g decoding / conversions.
+ """
+
+ try:
+ ROBOT_LIBRARY_VERSION = _package_version_get('grpc_robot')
+ except NameError:
+ ROBOT_LIBRARY_VERSION = 'unknown'
+
+ @staticmethod
+ def hw_metrics_mgmt_decode_metric(bytestring, return_enum_integer='false', return_defaults='false', human_readable_timestamps='true'):
+ """
+ Converts bytes to a Metric as defined in _message Metric_ from hw_metrics_mgmt_service.proto
+
+ *Parameters*:
+ - bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.
+ - return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: _false_.
+ - return_defaults: <string> or <bool>; Whether or not to return the default values. Default: _false_.
+ - human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: _true_.
+
+ *Return*: A dictionary with same structure as the _metric_ key from the return dictionary of keyword _Hw Metrics Mgmt Service Get Metric_.
+
+ *Example*:
+ | Import Library | grpc_robot.DmiTools | WITH NAME | dmi_tools |
+ | ${kafka_records} | kafka.Records Get |
+ | FOR | ${kafka_record} | IN | @{kafka_records} |
+ | | ${metric} | dmi_tools.Hw Metrics Mgmt Decode Metric | ${kafka_record}[message] |
+ | | Log | ${metric} |
+ | END |
+ """
+ return_enum_integer = str(return_enum_integer).lower() == 'true'
+ metric = hw_metrics_mgmt_service_pb2.Metric.FromString(bytestring)
+ return protobuf_to_dict(metric,
+ use_enum_labels=not return_enum_integer,
+ including_default_value_fields=str(return_defaults).lower() == 'true',
+ human_readable_timestamps=str(human_readable_timestamps).lower() == 'true')
+
+ @staticmethod
+ def hw_events_mgmt_decode_event(bytestring, return_enum_integer='false', return_defaults='false', human_readable_timestamps='true'):
+ """
+ Converts bytes to a Event as defined in _message Event_ from hw_events_mgmt_service.proto
+
+ *Parameters*:
+ - bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.
+ - return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: _false_.
+ - return_defaults: <string> or <bool>; Whether or not to return the default values. Default: _false_.
+ - human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: _true_.
+
+ *Return*: A dictionary with same structure as the _event_ key from the return dictionary of keyword _Hw Event Mgmt Service List Events_.
+
+ *Example*:
+ | Import Library | grpc_robot.DmiTools | WITH NAME | dmi_tools |
+ | ${kafka_records} | kafka.Records Get |
+ | FOR | ${kafka_record} | IN | @{kafka_records} |
+ | | ${event} | dmi_tools.Hw Events Mgmt Decode Event | ${kafka_record}[message] |
+ | | Log | ${event} |
+ | END |
+ """
+ return_enum_integer = str(return_enum_integer).lower() == 'true'
+ event = hw_events_mgmt_service_pb2.Event.FromString(bytestring)
+ return protobuf_to_dict(event,
+ use_enum_labels=not return_enum_integer,
+ including_default_value_fields=str(return_defaults).lower() == 'true',
+ human_readable_timestamps=str(human_readable_timestamps).lower() == 'true')
diff --git a/grpc_robot/tools/protobuf_parse.py b/grpc_robot/tools/protobuf_parse.py
new file mode 100644
index 0000000..f11e1a3
--- /dev/null
+++ b/grpc_robot/tools/protobuf_parse.py
@@ -0,0 +1,456 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# -*- coding: utf-8 -*-
+
+# Parser for protocol buffer .proto files
+import enum as stdlib_enum
+from string import ascii_letters, digits, hexdigits, octdigits
+
+import attr
+
+from parsy import char_from, from_enum, generate, regex, seq, string
+
+# This file follows the spec at
+# https://developers.google.com/protocol-buffers/docs/reference/proto3-spec
+# very closely.
+
+# However, because we are parsing into useful objects, we do transformations
+# along the way e.g. turning into integers, strings etc. and custom objects.
+# Some of the lowest level items have been implemented using 'regex' and converting
+# the descriptions to regular expressions. Higher level constructs have been
+# implemented using other parsy primitives and combinators.
+
+# Notes:
+
+# 1. Whitespace is very badly defined in the 'spec', so we guess what is meant.
+# 2. The spec doesn't allow for comments, and neither does this parser.
+# Other places mention that C++ style comments are allowed. To support that,
+# this parser would need to be changed into split lexing/parsing stages
+# (otherwise you hit issues with comments start markers within string literals).
+# 3. Other notes inline.
+
+
+# Our utilities
+optional_string = lambda s: string(s).times(0, 1).concat()
+convert_decimal = int
+convert_octal = lambda s: int(s, 8)
+convert_hex = lambda s: int(s, 16)
+exclude_none = lambda l: [i for i in l if i is not None]
+
+
+def lexeme(p):
+ """
+ From a parser (or string), make a parser that consumes
+ whitespace on either side.
+ """
+ if isinstance(p, str):
+ p = string(p)
+ return regex(r'\s*') >> p << regex(r'\s*')
+
+
+def is_present(p):
+ """
+ Given a parser or string, make a parser that returns
+ True if the parser matches, False otherwise
+ """
+ return lexeme(p).optional().map(lambda v: False if v is None else True)
+
+
+# Our data structures
+@attr.s
+class Import:
+ identifier = attr.ib()
+ option = attr.ib()
+
+
+@attr.s
+class Package:
+ identifer = attr.ib()
+
+
+@attr.s
+class Option:
+ name = attr.ib()
+ value = attr.ib()
+
+
+@attr.s
+class Field:
+ repeated = attr.ib()
+ type = attr.ib()
+ name = attr.ib()
+ number = attr.ib()
+ options = attr.ib()
+
+
+@attr.s
+class OneOfField:
+ type = attr.ib()
+ name = attr.ib()
+ number = attr.ib()
+ options = attr.ib()
+
+
+@attr.s
+class OneOf:
+ name = attr.ib()
+ fields = attr.ib()
+
+
+@attr.s
+class Map:
+ key_type = attr.ib()
+ type = attr.ib()
+ name = attr.ib()
+ number = attr.ib()
+ options = attr.ib()
+
+
+@attr.s
+class Reserved:
+ items = attr.ib()
+
+
+@attr.s
+class Range:
+ from_ = attr.ib()
+ to = attr.ib()
+
+
+@attr.s
+class EnumField:
+ name = attr.ib()
+ value = attr.ib()
+ options = attr.ib()
+
+
+@attr.s
+class Enum:
+ name = attr.ib()
+ body = attr.ib()
+
+
+@attr.s
+class Message:
+ name = attr.ib()
+ body = attr.ib()
+
+
+@attr.s
+class Service:
+ name = attr.ib()
+ body = attr.ib()
+
+
+@attr.s
+class Rpc:
+ name = attr.ib()
+ request_stream = attr.ib()
+ request_message_type = attr.ib()
+ response_stream = attr.ib()
+ response_message_type = attr.ib()
+ options = attr.ib()
+
+
+@attr.s
+class Proto:
+ syntax = attr.ib()
+ statements = attr.ib()
+
+
+# Enums:
+class ImportOption(stdlib_enum.Enum):
+ WEAK = "weak"
+ PUBLIC = "public"
+
+
+class Type(stdlib_enum.Enum):
+ DOUBLE = "double"
+ FLOAT = "float"
+ INT32 = "int32"
+ INT64 = "int64"
+ UINT32 = "uint32"
+ UINT64 = "uint64"
+ SINT32 = "sint32"
+ SINT64 = "sint64"
+ FIXED32 = "fixed32"
+ FIXED64 = "fixed64"
+ SFIXED32 = "sfixed32"
+ SFIXED64 = "sfixed64"
+ BOOL = "bool"
+ STRING = "string"
+ BYTES = "bytes"
+
+
+class KeyType(stdlib_enum.Enum):
+ INT32 = "int32"
+ INT64 = "int64"
+ UINT32 = "uint32"
+ UINT64 = "uint64"
+ SINT32 = "sint32"
+ SINT64 = "sint64"
+ FIXED32 = "fixed32"
+ FIXED64 = "fixed64"
+ SFIXED32 = "sfixed32"
+ SFIXED64 = "sfixed64"
+ BOOL = "bool"
+ STRING = "string"
+
+
+# Some extra constants to avoid typing
+SEMI, EQ, LPAREN, RPAREN, LBRACE, RBRACE, LBRAC, RBRAC = [lexeme(c) for c in ";=(){}[]"]
+
+
+# -- Beginning of following spec --
+# Letters and digits
+letter = char_from(ascii_letters)
+decimalDigit = char_from(digits)
+octalDigit = char_from(octdigits)
+hexDigit = char_from(hexdigits)
+
+# Identifiers
+
+# Compared to spec, we add some '_' prefixed items which are not wrapped in `lexeme`,
+# on the assumption that spaces in the middle of identifiers are not accepted.
+_ident = (letter + (letter | decimalDigit | string("_")).many().concat()).desc('ident')
+ident = lexeme(_ident)
+fullIdent = lexeme(ident + (string(".") + ident).many().concat()).desc('fullIdent')
+_messageName = _ident
+messageName = lexeme(ident).desc('messageName')
+_enumName = ident
+enumName = lexeme(_enumName).desc('enumName')
+fieldName = ident.desc('fieldName')
+oneofName = ident.desc('oneofName')
+mapName = ident.desc('mapName')
+serviceName = ident.desc('serviceName')
+rpcName = ident.desc('rpcName')
+messageType = optional_string(".") + (_ident + string(".")).many().concat() + _messageName
+enumType = optional_string(".") + (_ident + string(".")).many().concat() + _enumName
+
+# Integer literals
+decimalLit = regex("[1-9][0-9]*").desc('decimalLit').map(convert_decimal)
+octalLit = regex("0[0-7]*").desc('octalLit').map(convert_octal)
+hexLit = regex("0[x|X][0-9a-fA-F]+").desc('octalLit').map(convert_hex)
+intLit = decimalLit | octalLit | hexLit
+
+
+# Floating-point literals
+decimals = r'[0-9]+'
+exponent = r'[e|E][+|-]?' + decimals
+floatLit = regex(r'({decimals}\.({decimals})?({exponent})?)|{decimals}{exponent}|\.{decimals}({exponent})?'
+ .format(decimals=decimals, exponent=exponent)).desc('floatLit').map(float)
+
+
+# Boolean
+boolLit = (string("true").result(True) | string("false").result(False)).desc('boolLit')
+
+
+# String literals
+hexEscape = regex(r"\\[x|X]") >> regex("[0-9a-fA-F]{2}").map(convert_hex).map(chr)
+octEscape = regex(r"\\") >> regex('[0-7]{2}').map(convert_octal).map(chr)
+charEscape = regex(r"\\") >> (
+ string("a").result("\a")
+ | string("b").result("\b")
+ | string("f").result("\f")
+ | string("n").result("\n")
+ | string("r").result("\r")
+ | string("t").result("\t")
+ | string("v").result("\v")
+ | string("\\").result("\\")
+ | string("'").result("'")
+ | string('"').result('"')
+)
+escapes = hexEscape | octEscape | charEscape
+# Correction to spec regarding " and ' inside quoted strings
+strLit = (string("'") >> (escapes | regex(r"[^\0\n\'\\]")).many().concat() << string("'")
+ | string('"') >> (escapes | regex(r"[^\0\n\"\\]")).many().concat() << string('"')).desc('strLit')
+quote = string("'") | string('"')
+
+# EmptyStatement
+emptyStatement = string(";").result(None)
+
+# Signed numbers:
+# (Extra compared to spec, to cope with need to produce signed numeric values)
+signedNumberChange = lambda s, num: (-1) if s == "-" else (+1)
+sign = regex("[-+]?")
+signedIntLit = seq(sign, intLit).combine(signedNumberChange)
+signedFloatLit = seq(sign, floatLit).combine(signedNumberChange)
+
+
+# Constant
+# put fullIdent at end to disabmiguate from boolLit
+constant = signedIntLit | signedFloatLit | strLit | boolLit | fullIdent
+
+# Syntax
+syntax = lexeme("syntax") >> EQ >> quote >> string("proto3") << quote + SEMI
+
+# Import Statement
+import_option = from_enum(ImportOption)
+
+import_ = seq(lexeme("import") >> import_option.optional().tag('option'),
+ lexeme(strLit).tag('identifier') << SEMI).combine_dict(Import)
+
+# Package
+package = seq(lexeme("package") >> fullIdent << SEMI).map(Package)
+
+# Option
+optionName = (ident | (LPAREN >> fullIdent << RPAREN)) + (string(".") + ident).many().concat()
+option = seq(lexeme("option") >> optionName.tag('name'),
+ EQ >> constant.tag('value') << SEMI,
+ ).combine_dict(Option)
+
+# Normal field
+type_ = lexeme(from_enum(Type) | messageType | enumType)
+fieldNumber = lexeme(intLit)
+
+fieldOption = seq(optionName.tag('name'),
+ EQ >> constant.tag('value')).combine_dict(Option)
+fieldOptions = fieldOption.sep_by(lexeme(","), min=1)
+fieldOptionList = (lexeme("[") >> fieldOptions << lexeme("]")).optional().map(
+ lambda o: [] if o is None else o)
+
+field = seq(is_present("repeated").tag('repeated'),
+ type_.tag('type'),
+ fieldName.tag('name') << EQ,
+ fieldNumber.tag('number'),
+ fieldOptionList.tag('options') << SEMI,
+ ).combine_dict(Field)
+
+# Oneof and oneof field
+oneofField = seq(type_.tag('type'),
+ fieldName.tag('name') << EQ,
+ fieldNumber.tag('number'),
+ fieldOptionList.tag('options') << SEMI,
+ ).combine_dict(OneOfField)
+oneof = seq(lexeme("oneof") >> oneofName.tag('name'),
+ LBRACE
+ >> (oneofField | emptyStatement).many().map(exclude_none).tag('fields')
+ << RBRACE
+ ).combine_dict(OneOf)
+
+# Map field
+keyType = lexeme(from_enum(KeyType))
+mapField = seq(lexeme("map") >> lexeme("<") >> keyType.tag('key_type'),
+ lexeme(",") >> type_.tag('type'),
+ lexeme(">") >> mapName.tag('name'),
+ EQ >> fieldNumber.tag('number'),
+ fieldOptionList.tag('options') << SEMI
+ ).combine_dict(Map)
+
+# Reserved
+range_ = seq(lexeme(intLit).tag('from_'),
+ (lexeme("to") >> (intLit | lexeme("max"))).optional().tag('to')
+ ).combine_dict(Range)
+ranges = range_.sep_by(lexeme(","), min=1)
+# The spec for 'reserved' indicates 'fieldName' here, which is never a quoted string.
+# But the example has a quoted string. We have changed it to 'strLit'
+fieldNames = strLit.sep_by(lexeme(","), min=1)
+reserved = seq(lexeme("reserved") >> (ranges | fieldNames) << SEMI
+ ).combine(Reserved)
+
+# Enum definition
+enumValueOption = seq(optionName.tag('name') << EQ,
+ constant.tag('value')
+ ).combine_dict(Option)
+enumField = seq(ident.tag('name') << EQ,
+ lexeme(intLit).tag('value'),
+ (lexeme("[") >> enumValueOption.sep_by(lexeme(","), min=1) << lexeme("]")).optional()
+ .map(lambda o: [] if o is None else o).tag('options')
+ << SEMI
+ ).combine_dict(EnumField)
+enumBody = (LBRACE
+ >> (option | enumField | emptyStatement).many().map(exclude_none)
+ << RBRACE)
+enum = seq(lexeme("enum") >> enumName.tag('name'),
+ enumBody.tag('body')
+ ).combine_dict(Enum)
+
+
+# Message definition
+@generate
+def message():
+ yield lexeme("message")
+ name = yield messageName
+ body = yield messageBody
+ return Message(name=name, body=body)
+
+
+messageBody = (LBRACE
+ >> (field | enum | message | option | oneof | mapField
+ | reserved | emptyStatement).many()
+ << RBRACE)
+
+
+# Service definition
+rpc = seq(lexeme("rpc") >> rpcName.tag('name'),
+ LPAREN
+ >> (is_present("stream").tag("request_stream")),
+ messageType.tag("request_message_type") << RPAREN,
+ lexeme("returns") >> LPAREN
+ >> (is_present("stream").tag("response_stream")),
+ messageType.tag("response_message_type")
+ << RPAREN,
+ ((LBRACE
+ >> (option | emptyStatement).many()
+ << RBRACE)
+ | SEMI.result([])
+ ).optional().map(exclude_none).tag('options')
+ ).combine_dict(Rpc)
+
+service = seq(lexeme("service") >> serviceName.tag('name'),
+ LBRACE
+ >> (option | rpc | emptyStatement).many().map(exclude_none).tag('body')
+ << RBRACE
+ ).combine_dict(Service)
+
+
+# Proto file
+topLevelDef = message | enum | service
+proto = seq(syntax.tag('syntax'),
+ (import_ | package | option | topLevelDef | emptyStatement
+ ).many().map(exclude_none).tag('statements')
+ ).combine_dict(Proto)
+
+
+EXAMPLE = """syntax = "proto3";
+import public "other.proto";
+option java_package = "com.example.foo";
+option java_package = "com.example.foo";
+package dmi;
+
+enum EnumAllowingAlias {
+ option allow_alias = true;
+ UNKNOWN = 0;
+ STARTED = 1;
+ RUNNING = 2 [(custom_option) = "hello world"];
+}
+message outer {
+ option (my_option).a = true;
+ message inner {
+ int64 ival = 1;
+ }
+ repeated inner inner_message = 2;
+ EnumAllowingAlias enum_field =3;
+ map<int32, string> my_map = 4;
+ oneof operation {
+ MetricsConfig changes = 2;
+ bool reset_to_default = 3;
+ }
+}
+"""
+# Smoke test - should find 4 top level statements in the example:
+# assert len(proto.parse(EXAMPLE).statements) == 4
+# print(proto.parse(EXAMPLE).statements)
+# for st in proto.parse(EXAMPLE).statements:
+# print(type(st))
diff --git a/grpc_robot/tools/protobuf_to_dict.py b/grpc_robot/tools/protobuf_to_dict.py
new file mode 100644
index 0000000..19ebf1a
--- /dev/null
+++ b/grpc_robot/tools/protobuf_to_dict.py
@@ -0,0 +1,281 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+
+# This is free and unencumbered software released into the public domain
+# by its author, Ben Hodgson <ben@benhodgson.com>.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognise copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# For more information, please refer to <http://unlicense.org/>
+
+
+# -*- coding:utf-8 -*-
+
+# copied from https://github.com/kaporzhu/protobuf-to-dict
+# all credits to this script go to Kapor Zhu (kapor.zhu@gmail.com)
+#
+# Comments:
+# - need a fix for bug: "Use enum_label when setting the default value if use_enum_labels is true" (line 95)
+# - try to convert timestaps to a human readable format
+
+import base64
+
+import six
+from datetime import datetime
+
+from google.protobuf.message import Message
+from google.protobuf.descriptor import FieldDescriptor
+
+
+__all__ = ["protobuf_to_dict", "TYPE_CALLABLE_MAP", "dict_to_protobuf",
+ "REVERSE_TYPE_CALLABLE_MAP"]
+
+
+EXTENSION_CONTAINER = '___X'
+
+
+TYPE_CALLABLE_MAP = {
+ FieldDescriptor.TYPE_DOUBLE: float,
+ FieldDescriptor.TYPE_FLOAT: float,
+ FieldDescriptor.TYPE_INT32: int,
+ FieldDescriptor.TYPE_INT64: int if six.PY3 else six.integer_types[1],
+ FieldDescriptor.TYPE_UINT32: int,
+ FieldDescriptor.TYPE_UINT64: int if six.PY3 else six.integer_types[1],
+ FieldDescriptor.TYPE_SINT32: int,
+ FieldDescriptor.TYPE_SINT64: int if six.PY3 else six.integer_types[1],
+ FieldDescriptor.TYPE_FIXED32: int,
+ FieldDescriptor.TYPE_FIXED64: int if six.PY3 else six.integer_types[1],
+ FieldDescriptor.TYPE_SFIXED32: int,
+ FieldDescriptor.TYPE_SFIXED64: int if six.PY3 else six.integer_types[1],
+ FieldDescriptor.TYPE_BOOL: bool,
+ FieldDescriptor.TYPE_STRING: six.text_type,
+ FieldDescriptor.TYPE_BYTES: six.binary_type,
+ FieldDescriptor.TYPE_ENUM: int,
+}
+
+
+def repeated(type_callable):
+ return lambda value_list: [type_callable(value) for value in value_list]
+
+
+def enum_label_name(field, value):
+ return field.enum_type.values_by_number[int(value)].name
+
+
+def _is_map_entry(field):
+ return (field.type == FieldDescriptor.TYPE_MESSAGE and
+ field.message_type.has_options and
+ field.message_type.GetOptions().map_entry)
+
+
+def protobuf_to_dict(pb, type_callable_map=TYPE_CALLABLE_MAP,
+ use_enum_labels=False,
+ including_default_value_fields=False,
+ human_readable_timestamps=False):
+ result_dict = {}
+ extensions = {}
+ for field, value in pb.ListFields():
+ if field.message_type and field.message_type.has_options and field.message_type.GetOptions().map_entry:
+ result_dict[field.name] = dict()
+ value_field = field.message_type.fields_by_name['value']
+ type_callable = _get_field_value_adaptor(
+ pb, value_field, type_callable_map,
+ use_enum_labels, including_default_value_fields)
+ for k, v in value.items():
+ result_dict[field.name][k] = type_callable(v)
+ continue
+ type_callable = _get_field_value_adaptor(pb, field, type_callable_map,
+ use_enum_labels,
+ including_default_value_fields,
+ human_readable_timestamps)
+ if field.label == FieldDescriptor.LABEL_REPEATED:
+ type_callable = repeated(type_callable)
+
+ if field.is_extension:
+ extensions[str(field.number)] = type_callable(value)
+ continue
+
+ if field.full_name in ['google.protobuf.Timestamp.seconds'] and human_readable_timestamps:
+ result_dict[field.name] = datetime.fromtimestamp(type_callable(value)).strftime('%Y-%m-%d %H:%M:%S.%f')
+ else:
+ result_dict[field.name] = type_callable(value)
+
+ # Serialize default value if including_default_value_fields is True.
+ if including_default_value_fields:
+ for field in pb.DESCRIPTOR.fields:
+ # Singular message fields and oneof fields will not be affected.
+ if ((
+ field.label != FieldDescriptor.LABEL_REPEATED and
+ field.cpp_type == FieldDescriptor.CPPTYPE_MESSAGE) or
+ field.containing_oneof):
+ continue
+ if field.name in result_dict:
+ # Skip the field which has been serailized already.
+ continue
+ if _is_map_entry(field):
+ result_dict[field.name] = {}
+ else:
+ if use_enum_labels and field.type == FieldDescriptor.TYPE_ENUM:
+ result_dict[field.name] = enum_label_name(field, field.default_value)
+ else:
+ result_dict[field.name] = field.default_value
+
+ if extensions:
+ result_dict[EXTENSION_CONTAINER] = extensions
+ return result_dict
+
+
+def _get_field_value_adaptor(pb, field, type_callable_map=TYPE_CALLABLE_MAP,
+ use_enum_labels=False,
+ including_default_value_fields=False,
+ human_readable_timestamps=False):
+ if field.type == FieldDescriptor.TYPE_MESSAGE:
+ # recursively encode protobuf sub-message
+ return lambda pb: protobuf_to_dict(
+ pb, type_callable_map=type_callable_map,
+ use_enum_labels=use_enum_labels,
+ including_default_value_fields=including_default_value_fields,
+ human_readable_timestamps=human_readable_timestamps
+ )
+
+ if use_enum_labels and field.type == FieldDescriptor.TYPE_ENUM:
+ return lambda value: enum_label_name(field, value)
+
+ if field.type in type_callable_map:
+ return type_callable_map[field.type]
+
+ raise TypeError("Field %s.%s has unrecognised type id %d" % (
+ pb.__class__.__name__, field.name, field.type))
+
+
+REVERSE_TYPE_CALLABLE_MAP = {
+}
+
+
+def dict_to_protobuf(pb_klass_or_instance, values, type_callable_map=REVERSE_TYPE_CALLABLE_MAP, strict=True, ignore_none=False):
+ """Populates a protobuf model from a dictionary.
+
+ :param pb_klass_or_instance: a protobuf message class, or an protobuf instance
+ :type pb_klass_or_instance: a type or instance of a subclass of google.protobuf.message.Message
+ :param dict values: a dictionary of values. Repeated and nested values are
+ fully supported.
+ :param dict type_callable_map: a mapping of protobuf types to callables for setting
+ values on the target instance.
+ :param bool strict: complain if keys in the map are not fields on the message.
+ :param bool strict: ignore None-values of fields, treat them as empty field
+ """
+ if isinstance(pb_klass_or_instance, Message):
+ instance = pb_klass_or_instance
+ else:
+ instance = pb_klass_or_instance()
+ return _dict_to_protobuf(instance, values, type_callable_map, strict, ignore_none)
+
+
+def _get_field_mapping(pb, dict_value, strict):
+ field_mapping = []
+ for key, value in dict_value.items():
+ if key == EXTENSION_CONTAINER:
+ continue
+ if key not in pb.DESCRIPTOR.fields_by_name:
+ if strict:
+ raise KeyError("%s does not have a field called %s" % (pb, key))
+ continue
+ field_mapping.append((pb.DESCRIPTOR.fields_by_name[key], value, getattr(pb, key, None)))
+
+ for ext_num, ext_val in dict_value.get(EXTENSION_CONTAINER, {}).items():
+ try:
+ ext_num = int(ext_num)
+ except ValueError:
+ raise ValueError("Extension keys must be integers.")
+ if ext_num not in pb._extensions_by_number:
+ if strict:
+ raise KeyError("%s does not have a extension with number %s. Perhaps you forgot to import it?" % (pb, key))
+ continue
+ ext_field = pb._extensions_by_number[ext_num]
+ pb_val = None
+ pb_val = pb.Extensions[ext_field]
+ field_mapping.append((ext_field, ext_val, pb_val))
+
+ return field_mapping
+
+
+def _dict_to_protobuf(pb, value, type_callable_map, strict, ignore_none):
+ fields = _get_field_mapping(pb, value, strict)
+
+ for field, input_value, pb_value in fields:
+ if ignore_none and input_value is None:
+ continue
+ if field.label == FieldDescriptor.LABEL_REPEATED:
+ if field.message_type and field.message_type.has_options and field.message_type.GetOptions().map_entry:
+ value_field = field.message_type.fields_by_name['value']
+ for key, value in input_value.items():
+ if value_field.cpp_type == FieldDescriptor.CPPTYPE_MESSAGE:
+ _dict_to_protobuf(getattr(pb, field.name)[key], value, type_callable_map, strict, ignore_none)
+ else:
+ getattr(pb, field.name)[key] = value
+ continue
+ for item in input_value:
+ if field.type == FieldDescriptor.TYPE_MESSAGE:
+ m = pb_value.add()
+ _dict_to_protobuf(m, item, type_callable_map, strict, ignore_none)
+ elif field.type == FieldDescriptor.TYPE_ENUM and isinstance(item, six.string_types):
+ pb_value.append(_string_to_enum(field, item))
+ else:
+ pb_value.append(item)
+ continue
+ if field.type == FieldDescriptor.TYPE_MESSAGE:
+ _dict_to_protobuf(pb_value, input_value, type_callable_map, strict, ignore_none)
+ continue
+
+ if field.type in type_callable_map:
+ input_value = type_callable_map[field.type](input_value)
+
+ if field.is_extension:
+ pb.Extensions[field] = input_value
+ continue
+
+ if field.type == FieldDescriptor.TYPE_ENUM and isinstance(input_value, six.string_types):
+ input_value = _string_to_enum(field, input_value)
+
+ setattr(pb, field.name, input_value)
+
+ return pb
+
+
+def _string_to_enum(field, input_value):
+ enum_dict = field.enum_type.values_by_name
+ try:
+ input_value = enum_dict[input_value].number
+ except KeyError:
+ raise KeyError("`%s` is not a valid value for field `%s`" % (input_value, field.name))
+ return input_value
diff --git a/grpc_robot/tools/protop.py b/grpc_robot/tools/protop.py
new file mode 100644
index 0000000..7e53a1d
--- /dev/null
+++ b/grpc_robot/tools/protop.py
@@ -0,0 +1,203 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+import os
+import re
+import glob
+import json
+import argparse
+
+try:
+ from . import protobuf_parse as parser
+except ImportError:
+ import protobuf_parse as parser
+
+__version__ = '1.0'
+
+USAGE = """ProtoBuf -- Parser of Protocol Buffer to create the input JSON file for the library
+
+Usage: grpc_robot.protop [options] target_version
+
+ProtoBuf parser can be used to parse ProtoBuf files (*.proto) into a json formatted input file
+for the grpc_robot library to be used for keyword documentation.
+
+"""
+
+EPILOG = """
+Example
+=======
+# Executing `grpc_robot.protop` module using Python.
+$ grpc_robot.protop -i /home/user/Workspace/grpc/proto/dmi 0.9.1
+"""
+
+
+class ProtoBufParser(object):
+
+ def __init__(self, target, target_version, input_dir, output_dir=None):
+
+ super().__init__()
+
+ self.target = target
+ self.target_version = target_version.replace('.', '_')
+ self.input_dir = input_dir
+ self.output_dir = output_dir
+
+ @staticmethod
+ def read_enum(enum, protobuf_dict, module):
+ enum_dict = {'name': enum.name, 'type': 'enum', 'module': module, 'values': {ef.value: ef.name for ef in enum.body}}
+ protobuf_dict['data_types'].append(enum_dict)
+
+ def read_message(self, message, protobuf_dict, module):
+ message_dict = {'name': message.name, 'type': 'message', 'module': module, 'fields': []}
+
+ for f in message.body:
+
+ if f is None:
+ continue
+
+ if isinstance(f, parser.Enum):
+ self.read_enum(f, protobuf_dict, module)
+ continue
+
+ elif isinstance(f, parser.Message):
+ self.read_message(f, protobuf_dict, module)
+ continue
+
+ field_dict = {'name': f.name, 'is_choice': isinstance(f, parser.OneOf)}
+
+ if isinstance(f, parser.Field):
+ field_dict['repeated'] = f.repeated
+
+ try:
+ field_dict['type'] = f.type._value_
+ field_dict['lookup'] = False
+ except AttributeError:
+ field_dict['type'] = f.type
+ field_dict['lookup'] = True
+
+ elif isinstance(f, parser.OneOf):
+ field_dict['cases'] = []
+ for c in f.fields:
+ case_dict = {'name': c.name}
+ try:
+ case_dict['type'] = c.type._value_
+ case_dict['lookup'] = False
+ except AttributeError:
+ case_dict['type'] = c.type
+ case_dict['lookup'] = True
+ field_dict['cases'].append(case_dict)
+
+ message_dict['fields'].append(field_dict)
+
+ protobuf_dict['data_types'].append(message_dict)
+
+ def parse_files(self):
+
+ protobuf_dict = {
+ 'modules': [],
+ 'data_types': [],
+ 'services': []
+ }
+
+ for file_name in glob.glob(os.path.join(self.input_dir, '*.proto')):
+ print(file_name)
+
+ module = os.path.splitext(os.path.basename(file_name))[0]
+ module_dict = {'name': module, 'imports': []}
+
+ # the protobuf parser can not handle comments "// ...", so remove them first from the file
+ file_content = re.sub(r'\/\/.*', '', open(file_name).read())
+ parsed = parser.proto.parse(file_content)
+
+ # print(parsed.statements)
+
+ for p in parsed.statements:
+ # print(p)
+
+ if isinstance(p, parser.Import):
+ module_dict['imports'].append(os.path.splitext(os.path.basename(p.identifier))[0])
+
+ elif isinstance(p, parser.Enum):
+ self.read_enum(p, protobuf_dict, module)
+
+ elif isinstance(p, parser.Message):
+ self.read_message(p, protobuf_dict, module)
+
+ elif isinstance(p, parser.Service):
+ service_dict = {'name': p.name, 'module': module, 'rpcs': []}
+
+ for field in p.body:
+
+ if isinstance(field, parser.Enum):
+ self.read_enum(field, protobuf_dict, module)
+
+ elif isinstance(field, parser.Message):
+ self.read_message(field, protobuf_dict, module)
+
+ elif isinstance(field, parser.Rpc):
+ rpc_dict = {'name': field.name, 'request': {}, 'response': {}}
+
+ for attr in ['request', 'response']:
+ try:
+ rpc_dict[attr]['is_stream'] = field.__getattribute__('%s_stream' % attr)
+
+ try:
+ rpc_dict[attr]['type'] = field.__getattribute__('%s_message_type' % attr)._value_
+ rpc_dict[attr]['lookup'] = False
+ except AttributeError:
+ rpc_dict[attr]['type'] = field.__getattribute__('%s_message_type' % attr)
+ rpc_dict[attr]['lookup'] = not rpc_dict[attr]['type'].lower().startswith('google.protobuf.')
+
+ except AttributeError:
+ rpc_dict[attr] = None
+
+ service_dict['rpcs'].append(rpc_dict)
+
+ protobuf_dict['services'].append(service_dict)
+
+ protobuf_dict['modules'].append(module_dict)
+
+ if self.output_dir is not None:
+ json_file_name = os.path.join(self.output_dir, self.target, '%s_%s' % (self.target, self.target_version), '%s.json' % self.target)
+ json.dump(protobuf_dict, open(json_file_name, 'w'))
+
+ return protobuf_dict
+
+
+base_dir = os.path.dirname(os.path.realpath(__file__))
+output_base_dir = os.path.join(os.path.split(base_dir)[:-1][0], 'services')
+
+
+def main():
+ # create commandline parser
+ arg_parse = argparse.ArgumentParser(description=USAGE, epilog=EPILOG, formatter_class=argparse.RawTextHelpFormatter)
+
+ # add parser options
+ arg_parse.add_argument('target', choices=['dmi', 'voltha'],
+ help="Target type of which the ProtocolBuffer files shall be converted to the JSON file.")
+ arg_parse.add_argument('target_version', help="Version number of the ProtocolBuffer files.")
+
+ arg_parse.add_argument('-i', '--inputdir', default=os.getcwd(), help="Path to the location of the ProtocolBuffer files.")
+ arg_parse.add_argument('-o', '--outputdir', default=os.getcwd(), help="Path to the location JSON file to be stored.")
+
+ arg_parse.add_argument('-v', '--version', action='version', version=__version__)
+ arg_parse.set_defaults(feature=False)
+
+ # parse commandline
+ args = arg_parse.parse_args()
+
+ ProtoBufParser(args.target, args.target_version, args.inputdir or os.getcwd(), args.outputdir or output_base_dir).parse_files()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/grpc_robot/tools/robot_tools.py b/grpc_robot/tools/robot_tools.py
new file mode 100644
index 0000000..f5b7b0c
--- /dev/null
+++ b/grpc_robot/tools/robot_tools.py
@@ -0,0 +1,116 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from grpc_robot.grpc_robot import _package_version_get
+
+
+class Collections(object):
+ """
+ Tools for collections (list, dict) related functionality.
+ """
+
+ try:
+ ROBOT_LIBRARY_VERSION = _package_version_get('grpc_robot')
+ except NameError:
+ ROBOT_LIBRARY_VERSION = 'unknown'
+
+ @staticmethod
+ def dict_get_key_by_value(input_dict, search_value):
+ """
+ Gets the first key from _input_dict_ which has the value of _search_value_.
+
+ If _search_value_ is not found in _input_dict_, an empty string is returned.
+
+ *Parameters*:
+ - _input_dict_: <dictionary> to be browsed.
+ - _search_value_: <string>, value to be searched for.
+
+ *Return*: key of dictionary if search value is in input_dict else empty string
+ """
+ return_key = ''
+ for key, val in input_dict.items():
+ if val == search_value:
+ return_key = key
+ break
+
+ return return_key
+
+ @staticmethod
+ def dict_get_value(values_dict, key, strict=False):
+ """
+ Returns the value for given _key_ in _values_dict_.
+
+ If _strict_ is set to False (default) it will return given _key_ if its is not in the dictionary.
+ If set to True, an AssertionError is raised.
+
+ *Parameters*:
+ - _key_: <string>, key to be searched in dictionary.
+ - _values_dict_: <dictionary> in which the key is searched.
+ - _strict_: Optional: <boolean> switch to indicate if an exception shall be raised if key is not in values_dict.
+ Default: False
+
+ *Return*:
+ - if key is in values_dict: Value from _values_dict_ for _key_.
+ - else: _key_.
+ - raises AssertionError in case _key_ is not in _values_dict_ and _strict_ is True.
+ """
+ try:
+ return_value = values_dict[key]
+ except KeyError:
+ if strict:
+ raise AssertionError('Error: Value not found for key: %s' % key)
+ else:
+ return_value = key
+
+ return return_value
+
+ @staticmethod
+ def list_get_dict_by_value(input_list, key_name, value, match='first'):
+ """
+ Retrieves a dictionary from a list of dictionaries where _key_name_ has the _value, if _match_ is
+ "first". Else it returns all matching dictionaries.
+
+ *Parameters*:
+ - _input_list_: <list> ; List of dictionaries.
+ - _key_name_: <dictionary> or <list> ; Name of the key to be searched for.
+ - _value_: <string> or <number> ; Any value of key _key_name_ to be searched for.
+
+ *Example*:
+ | ${dict1} | Create Dictionary | key_key=master1 | key1=value11 | key2=value12 | |
+ | ${dict2} | Create Dictionary | key_key=master2 | key1=value21 | key2=value22 | |
+ | ${dict3} | Create Dictionary | key_key=master3 | key1=value31 | key2=value32 | |
+ | ${dict4} | Create Dictionary | key_key=master4 | key5=value41 | key6=value42 | |
+ | ${the_list} | Create List | ${dict1} | ${dict2} | ${dict3} | ${dict4} |
+ | ${result} | List Get Dict By Value | ${the_list} | key_key | master4 | |
+
+ Variable ${result} has following structure:
+ | ${result} = {
+ | 'key_key': 'master4',
+ | 'key5': 'value41',
+ | 'key6': 'value42'
+ | }
+ """
+ try:
+ if match == 'first':
+ return input_list[next(index for (index, d) in enumerate(input_list) if d[key_name] == value)]
+ else:
+ return [d for d in input_list if d[key_name] == value]
+ except (KeyError, TypeError, StopIteration):
+ raise KeyError('list does not contain a dictionary with key:value "%s:%s"' % (key_name, value))
+
+ @staticmethod
+ def to_camel_case(snake_str, first_uppercase=False):
+ components = snake_str.split('_')
+ # We capitalize the first letter of each component except the first one
+ # with the 'title' method and join them together.
+ return (components[0] if not first_uppercase else components[0].title()) + ''.join(x.title() for x in components[1:])
diff --git a/grpc_robot/tools/voltha_tools.py b/grpc_robot/tools/voltha_tools.py
new file mode 100644
index 0000000..ac18c5a
--- /dev/null
+++ b/grpc_robot/tools/voltha_tools.py
@@ -0,0 +1,122 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from grpc_robot.grpc_robot import _package_version_get
+
+from voltha_protos import events_pb2
+from voltha_protos import tech_profile_pb2
+from grpc_robot.tools.protobuf_to_dict import protobuf_to_dict
+
+
+class VolthaTools(object):
+ """
+ Tools for the voltha, e.g decoding / conversions.
+ """
+
+ try:
+ ROBOT_LIBRARY_VERSION = _package_version_get('grpc_robot')
+ except NameError:
+ ROBOT_LIBRARY_VERSION = 'unknown'
+
+ @staticmethod
+ def _convert_string_to_bytes(string):
+ """Converts a string to a bytes object."""
+ try:
+ return bytes.fromhex(string.replace('\\x', ' '))
+ except:
+ try:
+ b = bytearray()
+ b.extend(map(ord, string))
+ return bytes(b)
+ except (TypeError, AttributeError, SystemError):
+ return string
+
+ def events_decode_event(self, bytestring, return_enum_integer='false', return_defaults='false', human_readable_timestamps='true'):
+ """
+ Converts bytes to an Event as defined in _message Event_ from events.proto
+
+ *Parameters*:
+ - bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.
+ - return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: _false_.
+ - return_defaults: <string> or <bool>; Whether or not to return the default values. Default: _false_.
+ - human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: _true_.
+
+ *Return*: A dictionary with _event_ structure.
+
+ *Example*:
+ | Import Library | grpc_robot.VolthaTools | WITH NAME | voltha_tools |
+ | ${kafka_records} | kafka.Records Get |
+ | FOR | ${kafka_record} | IN | @{kafka_records} |
+ | | ${event} | voltha_tools.Events Decode Event | ${kafka_record}[message] |
+ | | Log | ${event} |
+ | END |
+ """
+ return_enum_integer = str(return_enum_integer).lower() == 'true'
+ result = events_pb2.Event.FromString(self._convert_string_to_bytes(bytestring))
+ return protobuf_to_dict(result,
+ use_enum_labels=not return_enum_integer,
+ including_default_value_fields=str(return_defaults).lower() == 'true',
+ human_readable_timestamps=str(human_readable_timestamps).lower() == 'true')
+
+ def tech_profile_decode_resource_instance(self, bytestring, return_enum_integer='false', return_defaults='false', human_readable_timestamps='true'):
+ """
+ Converts bytes to an resource instance as defined in _message ResourceInstance_ from tech_profile.proto
+
+ *Parameters*:
+ - bytestring: <bytes>; Byte string, e.g. as it comes from Kafka messages.
+ - return_enum_integer: <string> or <bool>; Whether or not to return the enum values as integer values rather than their labels. Default: _false_.
+ - return_defaults: <string> or <bool>; Whether or not to return the default values. Default: _false_.
+ - human_readable_timestamps: <string> or <bool>; Whether or not to convert the timestamps to human-readable format. Default: _true_.
+
+ *Return*: A dictionary with _event_ structure.
+
+ *Example*:
+ | Import Library | grpc_robot.VolthaTools | WITH NAME | voltha_tools |
+ | ${kafka_records} | kafka.Records Get |
+ | FOR | ${kafka_record} | IN | @{kafka_records} |
+ | | ${event} | voltha_tools. Tech Profile Decode Resource Instance | ${kafka_record}[message] |
+ | | Log | ${event} |
+ | END |
+ """
+ return_enum_integer = str(return_enum_integer).lower() == 'true'
+ result = tech_profile_pb2.ResourceInstance.FromString(self._convert_string_to_bytes(bytestring))
+ return protobuf_to_dict(result,
+ use_enum_labels=not return_enum_integer,
+ including_default_value_fields=str(return_defaults).lower() == 'true',
+ human_readable_timestamps=str(human_readable_timestamps).lower() == 'true')
+
+
+if __name__ == '__main__':
+ messages = [
+ b'\nD\n#Voltha.openolt..1626255789301080436\x10\x02 \x02*\x030.12\x06\x08\xad\xe3\xba\x87\x06:\x0c\x08\xad\xe3\xba\x87\x06\x10\xd9\xc9\xc8\x8f\x01"\xc2\x02\x11\x00\x00@k\xac;\xd8A\x1a\xb6\x02\n\x93\x01\n\x08PONStats\x11\x00\x00@k\xac;\xd8A*$65950aaf-b40f-4697-b5c3-8deb50fedd5d2-\n\x05oltid\x12$65950aaf-b40f-4697-b5c3-8deb50fedd5d2\x15\n\ndevicetype\x12\x07openolt2\x12\n\tportlabel\x12\x05pon-0\x12\x10\n\tTxPackets\x15\x00\x00\x8bC\x12\x15\n\x0eTxMcastPackets\x15\x00\x00\xa6B\x12\x15\n\x0eTxBcastPackets\x15\x00\x00\xa6B\x12\x0e\n\x07RxBytes\x15\x00\x00\x8bF\x12\x10\n\tRxPackets\x15\x00\x00\x8bC\x12\x15\n\x0eRxMcastPackets\x15\x00\x00\xa6B\x12\x15\n\x0eRxBcastPackets\x15\x00\x00\xa6B\x12\x0e\n\x07TxBytes\x15\x00\x00\x8bF',
+ b'\nD\n#Voltha.openolt..1613491472935896440\x10\x02 \x02*\x030.12\x06\x08\xad\xe3\xba\x87\x06:\x0c\x08\xad\xe3\xba\x87\x06\x10\xd9\xc9\xc8\x8f\x01"\xc2\x02\x11\x00\x00@k\xac;\xd8A\x1a\xb6\x02\n\x93\x01\n\x08PONStats\x11\x00\x00@k\xac;\xd8A*$65950aaf-b40f-4697-b5c3-8deb50fedd5d2-\n\x05oltid\x12$65950aaf-b40f-4697-b5c3-8deb50fedd5d2\x15\n\ndevicetype\x12\x07openolt2\x12\n\tportlabel\x12\x05pon-0\x12\x10\n\tTxPackets\x15\x00\x00\x8bC\x12\x15\n\x0eTxMcastPackets\x15\x00\x00\xa6B\x12\x15\n\x0eTxBcastPackets\x15\x00\x00\xa6B\x12\x0e\n\x07RxBytes\x15\x00\x00\x8bF\x12\x10\n\tRxPackets\x15\x00\x00\x8bC\x12\x15\n\x0eRxMcastPackets\x15\x00\x00\xa6B\x12\x15\n\x0eRxBcastPackets\x15\x00\x00\xa6B\x12\x0e\n\x07TxBytes\x15\x00\x00\x8bF'
+ ]
+ for message in messages:
+ print(VolthaTools().events_decode_event(message))
+
+ messages = [
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x39\x35\x36\x31\x37\x31\x32\x62\x2d\x35\x33\x32\x33\x2d\x34\x64\x64\x63\x2d\x38\x36\x62\x34\x2d\x64\x35\x31\x62\x62\x34\x61\x65\x30\x37\x33\x39\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x61\x61\x34\x36\x63\x62\x63\x61\x2d\x39\x31\x64\x37\x2d\x34\x36\x64\x65\x2d\x61\x61\x30\x65\x2d\x61\x32\x65\x33\x64\x32\x36\x61\x61\x66\x36\x32\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ "\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x61\x61\x34\x36\x63\x62\x63\x61\x2d\x39\x31\x64\x37\x2d\x34\x36\x64\x65\x2d\x61\x61\x30\x65\x2d\x61\x32\x65\x33\x64\x32\x36\x61\x61\x66\x36\x32\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ "\\x08\\x40\\x12\\x07\\x58\\x47\\x53\\x2d\\x50\\x4f\\x4e\\x1a\\x42\\x6f\\x6c\\x74\\x2d\\x7b\\x61\\x61\\x34\\x36\\x63\\x62\\x63\\x61\\x2d\\x39\\x31\\x64\\x37\\x2d\\x34\\x36\\x64\\x65\\x2d\\x61\\x61\\x30\\x65\\x2d\\x61\\x32\\x65\\x33\\x64\\x32\\x36\\x61\\x61\\x66\\x36\\x32\\x7d\\x2f\\x70\\x6f\\x6e\\x2d\\x7b\\x30\\x7d\\x2f\\x6f\\x6e\\x75\\x2d\\x7b\\x31\\x7d\\x2f\\x75\\x6e\\x69\\x2d\\x7b\\x30\\x7d\\x20\\x80\\x08\\x2a\\x10\\x80\\x08\\x81\\x08\\x82\\x08\\x83\\x08\\x84\\x08\\x85\\x08\\x86\\x08\\x87\\x08"
+ ]
+ # for message in messages:
+ # print(VolthaTools().tech_profile_decode_resource_instance(message))
diff --git a/grpc_robot/voltha_robot.py b/grpc_robot/voltha_robot.py
new file mode 100644
index 0000000..80bce7b
--- /dev/null
+++ b/grpc_robot/voltha_robot.py
@@ -0,0 +1,44 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+import voltha_protos
+
+from robot.api.deco import keyword
+from grpc_robot.grpc_robot import GrpcRobot
+
+
+class GrpcVolthaRobot(GrpcRobot):
+ """
+ This library is intended to supported different Protocol Buffer definitions. Precondition is that python files
+ generated from Protocol Buffer files are available in a pip package which must be installed before the library
+ is used.
+
+ | Supported device | Pip package | Pip package version | Library Name |
+ | voltha | voltha-protos | 4.0.13 | grpc_robot.Voltha |
+ """
+
+ device = 'voltha'
+ package_name = 'voltha-protos'
+ installed_package = voltha_protos
+
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ @keyword
+ def voltha_version_get(self):
+ """
+ Retrieve the version of the currently used python module _voltha-protos_.
+
+ *Return*: version string consisting of three dot-separated numbers (x.y.z)
+ """
+ return self.pb_version
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..a8a7478
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,9 @@
+six
+robotframework==3.1.2
+robotframework-lint==1.0
+grpcio
+decorator
+attrs
+parsy
+device-management-interface>=0.9.1
+voltha-protos>=4.0.13
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..5134678
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,65 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+import os
+from setuptools import setup, find_packages
+
+NAME = 'grpc_robot'
+with open('VERSION') as ff:
+ VERSION = ff.read().strip()
+with open('VERSION') as ff:
+ README = ff.read()
+with open('VERSION') as ff:
+ LICENSE = ff.read()
+
+
+def package_data():
+ paths = []
+ for (path, directories, filenames) in os.walk(NAME):
+ for filename in filenames:
+ if os.path.splitext(filename)[-1] == '.json':
+ paths.append(os.path.join('..', path, filename))
+ return paths
+
+
+setup(
+ name=NAME,
+ version=VERSION,
+ description='Package for sending/recieving messages to/from a gRPC server.',
+ long_description=README,
+ long_description_content_type="text/markdown",
+ license=LICENSE,
+ classifiers=[
+ "Programming Language :: Python :: 3",
+ "Operating System :: OS Independent",
+ ],
+ install_requires=[
+ 'six',
+ 'robotframework>=3.1.2',
+ 'grpcio',
+ 'decorator',
+ 'attrs',
+ 'parsy',
+ 'device-management-interface>=0.9.1',
+ 'voltha-protos>=4.0.13'
+ ],
+ python_requires='>=3.6',
+ packages=find_packages(exclude='tests'),
+ package_data={
+ NAME: package_data(),
+ },
+ data_files=[("", ["LICENSE"])],
+ entry_points={
+ 'console_scripts': ['grpc_robot.protop = grpc_robot.tools.protop:main'],
+ }
+)
diff --git a/tests/servers/dmi/dmi_server.py b/tests/servers/dmi/dmi_server.py
new file mode 100644
index 0000000..31e0f55
--- /dev/null
+++ b/tests/servers/dmi/dmi_server.py
@@ -0,0 +1,148 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+from concurrent import futures
+import grpc
+
+import dmi.hw_events_mgmt_service_pb2
+import dmi.hw_events_mgmt_service_pb2_grpc
+import dmi.hw_management_service_pb2
+import dmi.hw_management_service_pb2_grpc
+import dmi.hw_metrics_mgmt_service_pb2
+import dmi.hw_metrics_mgmt_service_pb2_grpc
+import dmi.sw_management_service_pb2
+import dmi.sw_management_service_pb2_grpc
+import dmi.commons_pb2
+import dmi.sw_image_pb2
+
+
+class DmiEventsManagementServiceServicer(dmi.hw_events_mgmt_service_pb2_grpc.NativeEventsManagementServiceServicer):
+
+ def ListEvents(self, request, context):
+ return dmi.hw_events_mgmt_service_pb2.ListEventsResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def UpdateEventsConfiguration(self, request, context):
+ return dmi.hw_events_mgmt_service_pb2.EventsConfigurationResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def StreamEvents(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.hw_events_mgmt_service_pb2.Event(event_id=dmi.hw_events_mgmt_service_pb2.EVENT_NAME_UNDEFINED)
+
+
+class DmiHwManagementServiceServicer(dmi.hw_management_service_pb2_grpc.NativeHWManagementServiceServicer):
+
+ def StartManagingDevice(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.hw_management_service_pb2.StartManagingDeviceResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def StopManagingDevice(self, request, context):
+ return dmi.hw_management_service_pb2.StopManagingDeviceResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def GetManagedDevices(self, request, context):
+ return dmi.hw_management_service_pb2.ManagedDevicesResponse()
+
+ def GetPhysicalInventory(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.hw_management_service_pb2.PhysicalInventoryResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def GetHWComponentInfo(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.hw_management_service_pb2.HWComponentInfoGetResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def SetHWComponentInfo(self, request, context):
+ return dmi.hw_management_service_pb2.HWComponentInfoSetResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def SetLoggingEndpoint(self, request, context):
+ return dmi.hw_management_service_pb2.SetRemoteEndpointResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def GetLoggingEndpoint(self, request, context):
+ return dmi.hw_management_service_pb2.GetLoggingEndpointResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def SetMsgBusEndpoint(self, request, context):
+ return dmi.hw_management_service_pb2.SetRemoteEndpointResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def GetMsgBusEndpoint(self, request, context):
+ return dmi.hw_management_service_pb2.GetMsgBusEndpointResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def GetLoggableEntities(self, request, context):
+ return dmi.hw_management_service_pb2.GetLogLevelResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def SetLogLevel(self, request, context):
+ return dmi.hw_management_service_pb2.SetLogLevelResponse()
+
+ def GetLogLevel(self, request, context):
+ return dmi.hw_management_service_pb2.GetLogLevelResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def HeartbeatCheck(self, request, context):
+ return dmi.hw_management_service_pb2.Heartbeat(heartbeat_signature=0)
+
+ def RebootDevice(self, request, context):
+ return dmi.hw_management_service_pb2.RebootDeviceResponse(status=dmi.commons_pb2.OK_STATUS)
+
+
+class DmiMetricsManagementServiceServicer(dmi.hw_metrics_mgmt_service_pb2_grpc.NativeMetricsManagementServiceServicer):
+
+ def ListMetrics(self, request, context):
+ return dmi.hw_metrics_mgmt_service_pb2.ListMetricsResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def UpdateMetricsConfiguration(self, request, context):
+ return dmi.hw_metrics_mgmt_service_pb2.MetricsConfigurationResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def GetMetric(self, request, context):
+ return dmi.hw_metrics_mgmt_service_pb2.GetMetricResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def StreamMetrics(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.hw_metrics_mgmt_service_pb2.Metric(metric_id=dmi.hw_metrics_mgmt_service_pb2.METRIC_NAME_UNDEFINED)
+
+
+class DmiSoftwareManagementServiceServicer(dmi.sw_management_service_pb2_grpc.NativeSoftwareManagementServiceServicer):
+
+ def GetSoftwareVersion(self, request, context):
+ return dmi.sw_management_service_pb2.GetSoftwareVersionInformationResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def DownloadImage(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.sw_image_pb2.ImageStatus(status=dmi.commons_pb2.OK_STATUS)
+
+ def ActivateImage(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.sw_image_pb2.ImageStatus(status=dmi.commons_pb2.OK_STATUS)
+
+ def RevertToStandbyImage(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.sw_image_pb2.ImageStatus(status=dmi.commons_pb2.OK_STATUS)
+
+ def UpdateStartupConfiguration(self, request, context):
+ for _ in range(0, 1):
+ yield dmi.sw_management_service_pb2.ConfigResponse(status=dmi.commons_pb2.OK_STATUS)
+
+ def GetStartupConfigurationInfo(self, request, context):
+ return dmi.sw_management_service_pb2.StartupConfigInfoResponse(status=dmi.commons_pb2.OK_STATUS)
+
+
+def serve():
+ server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
+
+ dmi.hw_events_mgmt_service_pb2_grpc.add_NativeEventsManagementServiceServicer_to_server(DmiEventsManagementServiceServicer(), server)
+ dmi.hw_management_service_pb2_grpc.add_NativeHWManagementServiceServicer_to_server(DmiHwManagementServiceServicer(), server)
+ dmi.hw_metrics_mgmt_service_pb2_grpc.add_NativeMetricsManagementServiceServicer_to_server(DmiMetricsManagementServiceServicer(), server)
+ dmi.sw_management_service_pb2_grpc.add_NativeSoftwareManagementServiceServicer_to_server(DmiSoftwareManagementServiceServicer(), server)
+
+ server.add_insecure_port('127.0.01:50051')
+ server.start()
+ server.wait_for_termination()
+
+
+if __name__ == '__main__':
+ serve()
diff --git a/tests/test.robot b/tests/test.robot
new file mode 100644
index 0000000..1e0894c
--- /dev/null
+++ b/tests/test.robot
@@ -0,0 +1,172 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+
+*** Settings ***
+Documentation Library test suite for the grpc_robot library. To run the test suite, the fake device manager from
+... _./servers/dmi_ must have been started beforehand with command _python3 dmi_server.py_.
+Library OperatingSystem WITH NAME os
+Library String
+Library Collections
+Variables ./variables.py
+
+*** Test Cases ***
+Library import
+ [Documentation] Checks if the grpc_robot libraries can be imported.
+ Import Library grpc_robot.Dmi WITH NAME dmi
+ Import Library grpc_robot.Collections
+ Import Library grpc_robot.DmiTools WITH NAME dtools
+ Import Library grpc_robot.VolthaTools WITH NAME vtools
+
+library_versions
+ [Documentation] Checks if the library returns the installed library and device-management-interface versions.
+ [Template] version_check
+ grpc-robot dmi.Library Version Get
+ device-management-interface dmi.Dmi Version Get
+
+keywords
+ [Documentation] Checks if the keyword name exists in the library's keyword list.
+ Keyword Should Exist dmi.connection_close
+ Keyword Should Exist dmi.connection_open
+ Keyword Should Exist dmi.connection_parameters_get
+ Keyword Should Exist dmi.connection_parameters_set
+ Keyword Should Exist dmi.hw_event_mgmt_service_list_events
+ Keyword Should Exist dmi.hw_event_mgmt_service_update_events_configuration
+ Keyword Should Exist dmi.hw_management_service_get_hw_component_info
+ Keyword Should Exist dmi.hw_management_service_get_logging_endpoint
+ Keyword Should Exist dmi.hw_management_service_get_managed_devices
+ Keyword Should Exist dmi.hw_management_service_get_msg_bus_endpoint
+ Keyword Should Exist dmi.hw_management_service_get_physical_inventory
+ Keyword Should Exist dmi.hw_management_service_set_hw_component_info
+ Keyword Should Exist dmi.hw_management_service_set_logging_endpoint
+ Keyword Should Exist dmi.hw_management_service_set_msg_bus_endpoint
+ Keyword Should Exist dmi.hw_management_service_start_managing_device
+ Keyword Should Exist dmi.hw_management_service_stop_managing_device
+ Keyword Should Exist dmi.hw_management_service_get_loggable_entities
+ Keyword Should Exist dmi.hw_management_service_set_log_level
+ Keyword Should Exist dmi.hw_management_service_get_log_level
+ Keyword Should Exist dmi.hw_metrics_mgmt_service_get_metric
+ Keyword Should Exist dmi.hw_metrics_mgmt_service_list_metrics
+ Keyword Should Exist dmi.hw_metrics_mgmt_service_update_metrics_configuration
+ Keyword Should Exist dmi.sw_management_service_activate_image
+ Keyword Should Exist dmi.sw_management_service_download_image
+ Keyword Should Exist dmi.sw_management_service_revert_to_standby_image
+ Keyword Should Exist dmi.sw_management_service_get_software_version
+ Keyword Should Exist dmi.sw_management_service_update_startup_configuration
+ Keyword Should Exist dmi.sw_management_service_get_startup_configuration_info
+ Keyword Should Exist dtools.hw_metrics_mgmt_decode_metric
+ Keyword Should Exist dtools.hw_events_mgmt_decode_event
+ Keyword Should Exist vtools.events_decode_event
+ Keyword Should Exist vtools.tech_profile_decode_resource_instance
+
+dmi
+ [Documentation] Checks the RPC keywords whether or not they handle their input and output correctly and uses the
+ ... fake device manager for that. The fake device manager returns _OK_STATUS_ for each RPC. The variables
+ ... _${keywords_to_skip}_ and _${params}_ are defined in the variables file _./variables.py_.
+ [Setup] dmi.Connection Open host=127.0.0.1 port=50051
+ ${keywords} Run Keyword dmi.Get Keyword Names
+ FOR ${keyword} IN @{keywords}
+ Continue For Loop If '${keyword}' in ${keywords_to_skip}
+ ${status} ${params} Run Keyword And Ignore Error Get From Dictionary ${param_dicts} ${keyword}
+ Run Keyword If '${status}' == 'FAIL' Log no parameters available for keyword '${keyword}' WARN
+ Continue For Loop If '${status}' == 'FAIL'
+ Run Keyword If ${params} == ${NONE} ${keyword} ELSE ${keyword} ${params}
+ END
+ [Teardown] dmi.Connection Close
+
+connection_params
+ [Documentation] Checks the connection parameter settings.
+ ${new_timeout} Set Variable 100
+ ${settings_before} dmi.Connection Parameters Get
+ ${settings_while_set} dmi.Connection Parameters Set timeout=${new_timeout}
+ ${settings_after} dmi.Connection Parameters Get
+ Should Be Equal ${settings_before} ${settings_while_set}
+ Should Be Equal As Integers ${settings_after}[timeout] ${new_timeout}
+
+enum_and_default_values
+ [Documentation] Checks the optional parameters _return_enum_integer_ and _return_defaults_ of the RPC keywords to
+ ... control their output. Check keyword documentation for the meaning of the parameters.
+ ... *Note*: The fake device manager must be running for this test case.
+ [Setup] dmi.Connection Open host=127.0.0.1 port=50051
+ ${params} Get From Dictionary ${param_dicts} hw_management_service_get_log_level
+ ${return} hw_management_service_get_log_level ${params}
+ Should Be Equal As Strings ${return}[status] OK_STATUS
+ Dictionary Should Not Contain Key ${return} reason
+ ${return} hw_management_service_get_log_level ${params} return_enum_integer=true
+ Should Be Equal As Integers ${return}[status] 1
+ Dictionary Should Not Contain Key ${return} reason
+ ${return} hw_management_service_get_log_level ${params} return_enum_integer=${TRUE}
+ Should Be Equal As Integers ${return}[status] 1
+ Dictionary Should Not Contain Key ${return} reason
+ ${return} hw_management_service_get_log_level ${params} return_defaults=true
+ Should Be Equal As Strings ${return}[status] OK_STATUS
+ Should Be Equal As Strings ${return}[reason] UNDEFINED_REASON
+ ${return} hw_management_service_get_log_level ${params} return_defaults=${TRUE}
+ Should Be Equal As Strings ${return}[status] OK_STATUS
+ Should Be Equal As Strings ${return}[reason] UNDEFINED_REASON
+ ${return} hw_management_service_get_log_level ${params} return_enum_integer=true return_defaults=true
+ Should Be Equal As Integers ${return}[status] 1
+ Should Be Equal As Integers ${return}[reason] 0
+ [Teardown] dmi.Connection Close
+
+tools
+ [Documentation] Checks some functions from the tools library which shall support the tester with general functionality.
+ ${dict_1} Create Dictionary name=abc type=123
+ ${dict_2} Create Dictionary name=def type=456
+ ${list} Create List ${dict_1} ${dict_2}
+ ${return_dict} grpc_robot.Collections.List Get Dict By Value ${list} name def
+ Should Be Equal ${return_dict}[type] 456
+
+dmi_tools
+ [Documentation] Checks functions from the DMI tools library with decoding Kafka messages. The variables
+ ... _kafka_metric_messages_ and _kafka_event_messages_ are defined in the variables file.
+ FOR ${kafka} IN @{kafka_metric_messages}
+ ${metric} dtools.Hw Metrics Mgmt Decode Metric ${kafka}[message]
+ Should Be Equal ${metric}[metric_metadata][device_uuid][uuid] 4c411df2-22e6-58d2-b1bb-545a0263d18d
+ Should Be Equal ${metric}[metric_id] ${kafka}[metric]
+ END
+ FOR ${kafka} IN @{kafka_event_messages}
+ ${event} dtools.Hw Events Mgmt Decode Event ${kafka}[message]
+ Should Be Equal ${event}[event_metadata][device_uuid][uuid] 84f46fde-89fa-5a2f-be4a-6d18abe6e953
+ Should Be Equal ${event}[event_id] ${kafka}[event]
+ END
+
+voltha_tools
+ [Documentation] Checks functions from the Voltha tools library with decoding Kafka messages. The variables
+ ... _kafka_voltha_events_messages_ and _voltha_resource_instances_ are defined in the variables file.
+ FOR ${kafka} IN @{kafka_voltha_events_messages}
+ ${event} vtools.Events Decode Event ${kafka}[message] return_defaults=true
+ Should Be Equal ${event}[header][id] Voltha.openolt..1613491472935896440
+ Should Be Equal ${event}[kpi_event2][type] slice
+ ${event} vtools.Events Decode Event ${kafka}[message]
+ Dictionary Should Not Contain Key ${event}[kpi_event2] type
+ END
+ FOR ${input} IN @{voltha_resource_instances}
+ ${instance} vtools.Tech Profile Decode Resource Instance ${input} return_defaults=true
+ Should Be Equal ${instance}[tp_id] ${64}
+ END
+
+*** Keywords ***
+version_check
+ [Documentation] Determines the version of the installed package and compares it with the returned version of the
+ ... corresponding keyword.
+ [Arguments] ${package_name} ${kw_name}
+ ${pip show} os.Run python3 -m pip show ${package_name} | grep Version
+ ${pip show} Split To Lines ${pip show}
+ FOR ${line} IN @{pip show}
+ ${is_version} Evaluate '${line}'.startswith('Version')
+ Continue For Loop If not ${is_version}
+ ${pip_version} Evaluate '${line}'.split(':')[-1].strip()
+ END
+ ${lib_version} Run Keyword ${kw_name}
+ Should Be Equal ${pip_version} ${lib_version}
diff --git a/tests/variables.py b/tests/variables.py
new file mode 100644
index 0000000..15fd619
--- /dev/null
+++ b/tests/variables.py
@@ -0,0 +1,245 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+
+keywords_to_skip = [
+ 'connection_open',
+ 'connection_close',
+ 'connection_parameters_get',
+ 'connection_parameters_set',
+ 'get_keyword_names',
+ 'library_version_get',
+ 'dmi_version_get'
+]
+
+param_dicts = {
+ 'hw_event_mgmt_service_list_events': {'uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_event_mgmt_service_update_events_configuration': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_event_mgmt_service_stream_events': None,
+ 'hw_management_service_start_managing_device': {'name': 'otti', 'uri': {'uri': '1.2.3.4'}},
+ 'hw_management_service_stop_managing_device': {'name': 'otti'},
+ 'hw_management_service_get_managed_devices': None,
+ 'hw_management_service_get_physical_inventory': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_get_hw_component_info': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_set_hw_component_info': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_set_logging_endpoint': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_get_logging_endpoint': {'uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_set_msg_bus_endpoint': {'msgbus_endpoint': '1234-3456-5678'},
+ 'hw_management_service_get_msg_bus_endpoint': None,
+ 'hw_management_service_get_loggable_entities': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_set_log_level': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_get_log_level': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_management_service_heartbeat_check': None,
+ 'hw_management_service_reboot_device': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_metrics_mgmt_service_list_metrics': {'uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_metrics_mgmt_service_update_metrics_configuration': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'hw_metrics_mgmt_service_get_metric': {'meta_data': {'device_uuid': {'uuid': '1234-3456-5678'}}},
+ 'hw_metrics_mgmt_service_stream_metrics': None,
+ 'sw_management_service_get_software_version': {'uuid': {'uuid': '1234-3456-5678'}},
+ 'sw_management_service_download_image': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'sw_management_service_activate_image': {'uuid': {'uuid': '1234-3456-5678'}},
+ 'sw_management_service_revert_to_standby_image': {'uuid': {'uuid': '1234-3456-5678'}},
+ 'sw_management_service_update_startup_configuration': {'device_uuid': {'uuid': '1234-3456-5678'}},
+ 'sw_management_service_get_startup_configuration_info': {'device_uuid': {'uuid': '1234-3456-5678'}},
+}
+
+kafka_metric_messages = [
+ {
+ 'message': b"\x08e\x12Y\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$96f716bd-9e72-5c39-9a79-58bb3821df19"
+ b"\x1a\x07cpu 0/1\x1a9\x08\x07\x10\x01\x18\t(\x012\x07percent:\x06\x08\xde\x96\x84\xfd\x05@\x88'J\x1b"
+ b"METRIC_CPU_USAGE_PERCENTAGE",
+ 'metric': 'METRIC_CPU_USAGE_PERCENTAGE'
+ },
+ {
+ 'message': b"\x08\xaf\x02\x12f\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$f14853c0-51e8-5f5a-8983-e8dc9c060f5d"
+ b"\x1a\x14storage-resource 0/1\x1a:\x08_\x10\x01\x18\t(\x012\x07percent:\x06\x08\xe3\x96\x84\xfd\x05@\x88'"
+ b"J\x1cMETRIC_DISK_USAGE_PERCENTAGE",
+ 'metric': 'METRIC_DISK_USAGE_PERCENTAGE'
+ },
+ {
+ 'message': b"\x08\xf6\x03\x12b\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$81ba5a6b-b8b9-582e-9cea-a512ed6bd8ad"
+ b"\x1a\x10power-supply 0/1\x1a;\x082\x10\x01\x18\t(\x012\x07percent:\x06\x08\xe7\x96\x84\xfd\x05@\x88'J\x1d"
+ b"METRIC_POWER_USAGE_PERCENTAGE",
+ 'metric': 'METRIC_POWER_USAGE_PERCENTAGE'
+ },
+ {
+ 'message': b"\x08\xf6\x03\x12b\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$760d33cd-ad0d-541b-8014-272af0cfbff8"
+ b"\x1a\x10power-supply 0/2\x1a;\x082\x10\x01\x18\t(\x012\x07percent:\x06\x08\xe7\x96\x84\xfd\x05@\x88'J\x1d"
+ b"METRIC_POWER_USAGE_PERCENTAGE",
+ 'metric': 'METRIC_POWER_USAGE_PERCENTAGE'
+ },
+ {
+ 'message': b"\x08\x01\x12e\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$0f3a8a29-2b79-560a-a034-2255e0c85920"
+ b"\x1a\x13pluggable-fan 0/1/1\x1a+\x08\xc0%\x10\n\x18\t(\x012\x03rpm:\x06\x08\xeb\x96\x84\xfd\x05@\x88'J\x10"
+ b"METRIC_FAN_SPEED",
+ 'metric': 'METRIC_FAN_SPEED'
+ },
+ {
+ 'message': b"\x08\x01\x12e\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$80d0e158-efc0-59ea-808d-e273d1c46099"
+ b"\x1a\x13pluggable-fan 0/1/2\x1a+\x08\xe5&\x10\n\x18\t(\x012\x03rpm:\x06\x08\xeb\x96\x84\xfd\x05@\x88'J\x10"
+ b"METRIC_FAN_SPEED",
+ 'metric': 'METRIC_FAN_SPEED'
+ },
+ {
+ 'message': b"\x08\x01\x12e\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$15d3103a-36b2-5774-ae06-d2d59a2ab6e7"
+ b"\x1a\x13pluggable-fan 0/1/3\x1a+\x08\xc8$\x10\n\x18\t(\x012\x03rpm:\x06\x08\xeb\x96\x84\xfd\x05@\x88'J\x10"
+ b"METRIC_FAN_SPEED",
+ 'metric': 'METRIC_FAN_SPEED'
+ },
+ {
+ 'message': b"\x08\xd8\x04\x12a\n&\n$4c411df2-22e6-58d2-b1bb-545a0263d18d\x12&\n$dc8c95f1-6b84-5e6d-b645-c76b02b7551b"
+ b"\x1a\x0ftemperature 0/1\x1aB\x085\x10\x08\x18\t(\x012\x0edegree Celsius:\x06\x08\xf0\x96\x84\xfd\x05@\x88'"
+ b"J\x1dMETRIC_INNER_SURROUNDING_TEMP",
+ 'metric': 'METRIC_INNER_SURROUNDING_TEMP'
+ },
+]
+
+kafka_event_messages = [
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf7\x03\x1a\x06\x08\x80\x82\xcd\xfe\x05"\x10\n\x02\x10\x00\x12\n\n\x08\n\x02'
+ b'\x10A\x12\x02\x10\x01',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED'
+ },
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf8\x03\x1a\x06\x08\x80\x82\xcd\xfe\x05"\x00',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED'
+ },
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf5\x03\x1a\x06\x08\xfe\xac\xdd\xfe\x05"\x10\n\x02\x10\x03\x12\n\n\x08\n\x02'
+ b'\x10\x02\x12\x02\x10\x01*\xcf\x01The system temperature of the physical entity '
+ b'\'temperature 0/1\' has risen above power reduction active-threshold of 2 degree Celsius. Unit '
+ b'operates out of specification. Correct service cannot be guaranteed.',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL'
+ },
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf6\x03\x1a\x06\x08\xfe\xac\xdd\xfe\x05"\x00*\x86\x01The system temperature '
+ b'of the physical entity \'temperature 0/1\' has risen above thermal shutdown active-threshold '
+ b'of 2 degree Celsius.',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL'
+ },
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf7\x03\x1a\x06\x08\xfe\xac\xdd\xfe\x05"\x10\n\x02\x10\x00\x12\n\n\x08\n\x02'
+ b'\x10\x02\x12\x02\x10\x01',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED'
+ },
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf5\x03\x1a\x06\x08\xfe\xac\xdd\xfe\x05"\x10\n\x02\x10\x03\x12\n\n\x08\n\x02'
+ b'\x10\x02\x12\x02\x10\x01*\xcf\x01The system temperature of the physical entity '
+ b'\'temperature 0/1\' has risen above power reduction active-threshold of 2 degree Celsius. Unit '
+ b'operates out of specification. Correct service cannot be guaranteed.',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL'
+ },
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf7\x03\x1a\x06\x08\xfe\xac\xdd\xfe\x05"\x10\n\x02\x10\x00\x12\n\n\x08\n\x02'
+ b'\x10\x02\x12\x02\x10\x01',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED'
+ },
+ {
+ 'message': b'\na\n&\n$84f46fde-89fa-5a2f-be4a-6d18abe6e953\x12&\n$368c6f41-564c-5821-8e15-721f818387fc\x1a\x0f'
+ b'temperature 0/1\x10\xf5\x03\x1a\x06\x08\xfe\xac\xdd\xfe\x05"\x10\n\x02\x10\x03\x12\n\n\x08\n\x02'
+ b'\x10\x02\x12\x02\x10\x01*\xcf\x01The system temperature of the physical entity '
+ b'\'temperature 0/1\' has risen above power reduction active-threshold of 2 degree Celsius. Unit '
+ b'operates out of specification. Correct service cannot be guaranteed.',
+ 'event': 'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL'
+ },
+]
+
+kafka_voltha_events_messages = [
+ {
+ 'message': b'\nL\n#Voltha.openolt..1613491472935896440\x10\x02\x18\x04 \x02*\x030.12\x0c\x08\x90\xda\xaf\x81\x06\x10\x97\xb2\xa2\xbe\x03:\x0c\x08'
+ b'\x90\xda\xaf\x81\x06\x10\x86\xd3\xa2\xbe\x03"\xc2\x02\x11@w,\xf2Ed\xb6C\x1a\xb6\x02\n\x93\x01\n\x08NNIStats\x119w,\xf2Ed\xb6C*$a3281'
+ b'32d-ad87-4edf-976e-ad1a364144012-\n\x05oltid\x12$a328132d-ad87-4edf-976e-ad1a364144012\x15\n\ndevicetype\x12\x07openolt2\x12\n\tport'
+ b'label\x12\x05nni-0\x12\x15\n\x0eTxMcastPackets\x15\x00\x80\xccD\x12\x15\n\x0eTxBcastPackets\x15\x00\x80\xccD\x12\x0e\n\x07RxBytes\x15'
+ b'\x00p\xaaH\x12\x10\n\tRxPackets\x15\x00p\xaaE\x12\x15\n\x0eRxMcastPackets\x15\x00\x80\xccD\x12\x15\n\x0eRxBcastPackets\x15\x00\x80\xcc'
+ b'D\x12\x0e\n\x07TxBytes\x15\x00p\xaaH\x12\x10\n\tTxPackets\x15\x00p\xaaE',
+ 'timestamp': -1,
+ 'topic': 'voltha.events'
+ },
+ {
+ 'message': b'\nJ\n#Voltha.openolt..1613491472935896440\x10\x02 \x02*\x030.12\x0c\x08\x90\xda\xaf\x81\x06\x10\xdf\xba\xa6\xbe\x03:\x0c\x08\x90\xda'
+ b'\xaf\x81\x06\x10\xb8\xcf\xa6\xbe\x03"\xc2\x02\x11?x,\xf2Ed\xb6C\x1a\xb6\x02\n\x93\x01\n\x08PONStats\x11=x,\xf2Ed\xb6C*$a328132d-ad87'
+ b'-4edf-976e-ad1a364144012-\n\x05oltid\x12$a328132d-ad87-4edf-976e-ad1a364144012\x15\n\ndevicetype\x12\x07openolt2\x12\n\tportlabel\x12'
+ b'\x05pon-0\x12\x0e\n\x07TxBytes\x15\x00\xd0\xa6H\x12\x10\n\tTxPackets\x15\x00\xd0\xa6E\x12\x15\n\x0eTxMcastPackets\x15\x00 \xc8D\x12'
+ b'\x15\n\x0eTxBcastPackets\x15\x00 \xc8D\x12\x0e\n\x07RxBytes\x15\x00\xd0\xa6H\x12\x10\n\tRxPackets\x15\x00\xd0\xa6E\x12\x15\n\x0eRxMc'
+ b'astPackets\x15\x00 \xc8D\x12\x15\n\x0eRxBcastPackets\x15\x00 \xc8D',
+ 'timestamp': -1,
+ 'topic': 'voltha.events'
+ },
+ {
+ 'message': b'\nJ\n#Voltha.openolt..1613491472935896440\x10\x02 \x02*\x030.12\x0c\x08\xb8\xab\xb8\x81\x06\x10\x80\x8f\xc8\xb4\x02:\x0c\x08\xb8\xab'
+ b'\xb8\x81\x06\x10\xae\xa1\xc8\xb4\x02"\xc2\x02\x119e\xfc\x9e\xc6d\xb6C\x1a\xb6\x02\n\x93\x01\n\x08PONStats\x118e\xfc\x9e\xc6d\xb6C*$4'
+ b'fce7729-d898-43af-a12a-d143fea0abea2\x15\n\ndevicetype\x12\x07openolt2\x12\n\tportlabel\x12\x05pon-02-\n\x05oltid\x12$4fce7729-d898-'
+ b'43af-a12a-d143fea0abea\x12\x10\n\tRxPackets\x15\x00\xc0\x06E\x12\x15\n\x0eRxMcastPackets\x15\x00\x80!D\x12\x15\n\x0eRxBcastPackets'
+ b'\x15\x00\x80!D\x12\x0e\n\x07TxBytes\x15\x00\xc0\x06H\x12\x10\n\tTxPackets\x15\x00\xc0\x06E\x12\x15\n\x0eTxMcastPackets\x15\x00\x80!D'
+ b'\x12\x15\n\x0eTxBcastPackets\x15\x00\x80!D\x12\x0e\n\x07RxBytes\x15\x00\xc0\x06H',
+ 'timestamp': -1,
+ 'topic': 'voltha.events'
+ },
+ {
+ 'message': b'\nD\n#Voltha.openolt..1613491472935896440\x10\x02 \x02*\x030.12\x06\x08\xad\xe3\xba\x87\x06:\x0c\x08\xad\xe3\xba\x87\x06\x10\xd9'
+ b'\xc9\xc8\x8f\x01"\xc2\x02\x11\x00\x00@k\xac;\xd8A\x1a\xb6\x02\n\x93\x01\n\x08PONStats\x11\x00\x00@k\xac;\xd8A*$65950aaf-b40f-4697'
+ b'-b5c3-8deb50fedd5d2-\n\x05oltid\x12$65950aaf-b40f-4697-b5c3-8deb50fedd5d2\x15\n\ndevicetype\x12\x07openolt2\x12\n\tportlabel\x12'
+ b'\x05pon-0\x12\x10\n\tTxPackets\x15\x00\x00\x8bC\x12\x15\n\x0eTxMcastPackets\x15\x00\x00\xa6B\x12\x15\n\x0eTxBcastPackets\x15\x00'
+ b'\x00\xa6B\x12\x0e\n\x07RxBytes\x15\x00\x00\x8bF\x12\x10\n\tRxPackets\x15\x00\x00\x8bC\x12\x15\n\x0eRxMcastPackets\x15\x00\x00\xa6'
+ b'B\x12\x15\n\x0eRxBcastPackets\x15\x00\x00\xa6B\x12\x0e\n\x07TxBytes\x15\x00\x00\x8bF',
+ 'timestamp': -1,
+ 'topic': 'voltha.events'
+ }
+]
+
+voltha_resource_instances = [
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x39\x35\x36\x31\x37\x31\x32\x62\x2d\x35\x33\x32\x33\x2d\x34\x64\x64"
+ b"\x63\x2d\x38\x36\x62\x34\x2d\x64\x35\x31\x62\x62\x34\x61\x65\x30\x37\x33\x39\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30"
+ b"\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30"
+ b"\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30"
+ b"\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x35\x66\x35\x39\x61\x32\x32\x63\x2d\x37\x63\x37\x65\x2d\x34\x65\x30"
+ b"\x63\x2d\x39\x38\x30\x65\x2d\x37\x34\x66\x31\x35\x33\x62\x33\x32\x33\x38\x31\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33"
+ b"\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33"
+ b"\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33"
+ b"\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x38\x34\x62\x35\x64\x35\x61\x39\x2d\x33\x34\x64\x66\x2d\x34\x61\x33"
+ b"\x37\x2d\x62\x66\x37\x64\x2d\x63\x37\x37\x61\x34\x65\x33\x34\x33\x61\x37\x64\x7d\x2f\x70\x6f\x6e\x2d\x7b\x31\x7d\x2f\x6f\x6e\x75\x2d\x7b\x32"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x81\x08\x2a\x10\x88\x08\x89\x08\x8a\x08\x8b\x08\x8c\x08\x8d\x08\x8e\x08\x8f\x08",
+ b"\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x61\x61\x34\x36\x63\x62\x63\x61\x2d\x39\x31\x64\x37\x2d\x34\x36\x64"
+ b"\x65\x2d\x61\x61\x30\x65\x2d\x61\x32\x65\x33\x64\x32\x36\x61\x61\x66\x36\x32\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31"
+ b"\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ "\x08\x40\x12\x07\x58\x47\x53\x2d\x50\x4f\x4e\x1a\x42\x6f\x6c\x74\x2d\x7b\x61\x61\x34\x36\x63\x62\x63\x61\x2d\x39\x31\x64\x37\x2d\x34\x36\x64"
+ "\x65\x2d\x61\x61\x30\x65\x2d\x61\x32\x65\x33\x64\x32\x36\x61\x61\x66\x36\x32\x7d\x2f\x70\x6f\x6e\x2d\x7b\x30\x7d\x2f\x6f\x6e\x75\x2d\x7b\x31"
+ "\x7d\x2f\x75\x6e\x69\x2d\x7b\x30\x7d\x20\x80\x08\x2a\x10\x80\x08\x81\x08\x82\x08\x83\x08\x84\x08\x85\x08\x86\x08\x87\x08",
+ "\\x08\\x40\\x12\\x07\\x58\\x47\\x53\\x2d\\x50\\x4f\\x4e\\x1a\\x42\\x6f\\x6c\\x74\\x2d\\x7b\\x61\\x61\\x34\\x36\\x63\\x62\\x63\\x61\\x2d\\x39"
+ "\\x31\\x64\\x37\\x2d\\x34\\x36\\x64\\x65\\x2d\\x61\\x61\\x30\\x65\\x2d\\x61\\x32\\x65\\x33\\x64\\x32\\x36\\x61\\x61\\x66\\x36\\x32\\x7d\\x2f"
+ "\\x70\\x6f\\x6e\\x2d\\x7b\\x30\\x7d\\x2f\\x6f\\x6e\\x75\\x2d\\x7b\\x31\\x7d\\x2f\\x75\\x6e\\x69\\x2d\\x7b\\x30\\x7d\\x20\\x80\\x08\\x2a\\x10"
+ "\\x80\\x08\\x81\\x08\\x82\\x08\\x83\\x08\\x84\\x08\\x85\\x08\\x86\\x08\\x87\\x08"
+ ]