summaryrefslogtreecommitdiff
path: root/docs/SVD
diff options
context:
space:
mode:
Diffstat (limited to 'docs/SVD')
-rw-r--r--docs/SVD/html/CMSIS-SVD.xsd649
-rw-r--r--docs/SVD/html/CMSIS_Logo_Final.pngbin0 -> 12402 bytes
-rw-r--r--docs/SVD/html/CMSIS_SVD_Schema_Gen.pngbin0 -> 16096 bytes
-rw-r--r--docs/SVD/html/SystemViewer_Generated.pngbin0 -> 39693 bytes
-rw-r--r--docs/SVD/html/bc_s.pngbin0 -> 676 bytes
-rw-r--r--docs/SVD/html/bdwn.pngbin0 -> 147 bytes
-rw-r--r--docs/SVD/html/closed.pngbin0 -> 132 bytes
-rw-r--r--docs/SVD/html/cmsis.css1282
-rw-r--r--docs/SVD/html/doxygen.css1366
-rw-r--r--docs/SVD/html/doxygen.pngbin0 -> 3779 bytes
-rw-r--r--docs/SVD/html/dynsections.js97
-rw-r--r--docs/SVD/html/elem_cpu.html301
-rw-r--r--docs/SVD/html/elem_device.html225
-rw-r--r--docs/SVD/html/elem_peripherals.html301
-rw-r--r--docs/SVD/html/elem_registers.html672
-rw-r--r--docs/SVD/html/elem_special.html302
-rw-r--r--docs/SVD/html/ftv2blank.pngbin0 -> 86 bytes
-rw-r--r--docs/SVD/html/ftv2cl.pngbin0 -> 453 bytes
-rw-r--r--docs/SVD/html/ftv2doc.pngbin0 -> 746 bytes
-rw-r--r--docs/SVD/html/ftv2folderclosed.pngbin0 -> 616 bytes
-rw-r--r--docs/SVD/html/ftv2folderopen.pngbin0 -> 597 bytes
-rw-r--r--docs/SVD/html/ftv2lastnode.pngbin0 -> 86 bytes
-rw-r--r--docs/SVD/html/ftv2link.pngbin0 -> 746 bytes
-rw-r--r--docs/SVD/html/ftv2mlastnode.pngbin0 -> 246 bytes
-rw-r--r--docs/SVD/html/ftv2mnode.pngbin0 -> 246 bytes
-rw-r--r--docs/SVD/html/ftv2mo.pngbin0 -> 403 bytes
-rw-r--r--docs/SVD/html/ftv2node.pngbin0 -> 86 bytes
-rw-r--r--docs/SVD/html/ftv2ns.pngbin0 -> 388 bytes
-rw-r--r--docs/SVD/html/ftv2plastnode.pngbin0 -> 229 bytes
-rw-r--r--docs/SVD/html/ftv2pnode.pngbin0 -> 229 bytes
-rw-r--r--docs/SVD/html/ftv2splitbar.pngbin0 -> 314 bytes
-rw-r--r--docs/SVD/html/ftv2vertline.pngbin0 -> 86 bytes
-rw-r--r--docs/SVD/html/index.html169
-rw-r--r--docs/SVD/html/jquery.js72
-rw-r--r--docs/SVD/html/nav_f.pngbin0 -> 153 bytes
-rw-r--r--docs/SVD/html/nav_g.pngbin0 -> 95 bytes
-rw-r--r--docs/SVD/html/nav_h.pngbin0 -> 98 bytes
-rw-r--r--docs/SVD/html/navtree.css143
-rw-r--r--docs/SVD/html/navtree.js534
-rw-r--r--docs/SVD/html/navtreeindex0.js37
-rw-r--r--docs/SVD/html/open.pngbin0 -> 123 bytes
-rw-r--r--docs/SVD/html/pages.html143
-rw-r--r--docs/SVD/html/printComponentTabs.js39
-rw-r--r--docs/SVD/html/resize.js97
-rw-r--r--docs/SVD/html/schema_1_2_gr.html775
-rw-r--r--docs/SVD/html/search/all_0.html26
-rw-r--r--docs/SVD/html/search/all_0.js4
-rw-r--r--docs/SVD/html/search/all_1.html26
-rw-r--r--docs/SVD/html/search/all_1.js4
-rw-r--r--docs/SVD/html/search/all_2.html26
-rw-r--r--docs/SVD/html/search/all_2.js4
-rw-r--r--docs/SVD/html/search/all_3.html26
-rw-r--r--docs/SVD/html/search/all_3.js9
-rw-r--r--docs/SVD/html/search/close.pngbin0 -> 273 bytes
-rw-r--r--docs/SVD/html/search/mag_sel.pngbin0 -> 563 bytes
-rw-r--r--docs/SVD/html/search/nomatches.html12
-rw-r--r--docs/SVD/html/search/pages_0.html26
-rw-r--r--docs/SVD/html/search/pages_0.js4
-rw-r--r--docs/SVD/html/search/pages_1.html26
-rw-r--r--docs/SVD/html/search/pages_1.js4
-rw-r--r--docs/SVD/html/search/pages_2.html26
-rw-r--r--docs/SVD/html/search/pages_2.js4
-rw-r--r--docs/SVD/html/search/pages_3.html26
-rw-r--r--docs/SVD/html/search/pages_3.js9
-rw-r--r--docs/SVD/html/search/search.css271
-rw-r--r--docs/SVD/html/search/search.js795
-rw-r--r--docs/SVD/html/search/search_l.pngbin0 -> 604 bytes
-rw-r--r--docs/SVD/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--docs/SVD/html/search/search_r.pngbin0 -> 612 bytes
-rw-r--r--docs/SVD/html/svd_Example_pg.html916
-rw-r--r--docs/SVD/html/svd_Format_pg.html175
-rw-r--r--docs/SVD/html/svd_Format_pg.js35
-rw-r--r--docs/SVD/html/svd_SVDConv_pg.html280
-rw-r--r--docs/SVD/html/svd_revisionHistory.html180
-rw-r--r--docs/SVD/html/svd_validate_file_pg.html157
-rw-r--r--docs/SVD/html/svd_xml_conventions_gr.html155
-rw-r--r--docs/SVD/html/sync_off.pngbin0 -> 853 bytes
-rw-r--r--docs/SVD/html/sync_on.pngbin0 -> 845 bytes
-rw-r--r--docs/SVD/html/tab_a.pngbin0 -> 142 bytes
-rw-r--r--docs/SVD/html/tab_b.pngbin0 -> 169 bytes
-rw-r--r--docs/SVD/html/tab_h.pngbin0 -> 177 bytes
-rw-r--r--docs/SVD/html/tab_s.pngbin0 -> 184 bytes
-rw-r--r--docs/SVD/html/tab_topnav.pngbin0 -> 232 bytes
-rw-r--r--docs/SVD/html/tabs.css71
84 files changed, 10501 insertions, 0 deletions
diff --git a/docs/SVD/html/CMSIS-SVD.xsd b/docs/SVD/html/CMSIS-SVD.xsd
new file mode 100644
index 0000000..413ce0d
--- /dev/null
+++ b/docs/SVD/html/CMSIS-SVD.xsd
@@ -0,0 +1,649 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (c) 2013-2016 ARM Limited. All rights reserved.
+
+ SPDX-License-Identifier: Apache-2.0
+
+ 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
+
+ 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.
+
+ $Date: 23. September 2016
+ $Revision: 1.3.3
+
+ Version 1.3.3:
+ - update file header to Apache 2.0 License
+ - add dimableIdentifierType, as a copy of previous identifierType adding "%s",
+ - update identifierType to only allow names without %s included.
+ - remove enumerationNameType.
+ - add headerEnumName to enumerationType and to dimArrayIndexType for peripheral arrays
+ overwriting hierarchically generated names
+ - add dimName to dimElementGroup. Only valid in <cluster> context, ignored otherwise.
+
+ Version 1.3.2:
+ adding dimIndexArray to peripheral-, cluster- and register-array to describe
+ enumeration of array indices.
+
+ Version 1.3.1:
+ fixed peripheral name element type to identifierType to support %s for peripheral arrays
+ added optional protection element to addressBlockType and added p=privileged
+
+ Version 1.3:
+ added dim to peripherals to describe an array of peripherals.
+ added nesting of clusters to support hierarchical register structures.
+ added protection element as part of the registerPropertiesGroup indicating
+ special permissions are required for accessing a register.
+ CPU Section extended with description of the Secure Attribution Unit.
+
+ Version 1.2:
+ Cortex-M7 support items have been added as optional tags for the device header file generation:
+ fpuDP, icachePresent, dcachePresent, itcmPresent, dtcmPresent
+
+ Version 1.1:
+ For backward compatibility all additional tags have been made optional.
+ Extensions may be mandatory for successful device header file generation
+ Other changes are related to some restructuring of the schema.
+
+ Note that the memory section has been removed since this would limit the
+ reuse of descriptions for a series of devices.
+ -->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.3">
+ <!-- stringType requires a none empty string of a least one character length -->
+ <xs:simpleType name="stringType">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="descriptionStringType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- cpuType specifies a selection of Cortex-M and Secure-Cores. This list will get extended as new processors are released -->
+ <xs:simpleType name="cpuNameType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="CM0"/>
+ <xs:enumeration value="CM0PLUS"/>
+ <xs:enumeration value="CM0+"/>
+ <xs:enumeration value="CM1"/>
+ <xs:enumeration value="SC000"/>
+ <xs:enumeration value="CM23"/>
+ <xs:enumeration value="CM3"/>
+ <xs:enumeration value="CM33"/>
+ <xs:enumeration value="SC300"/>
+ <xs:enumeration value="CM4"/>
+ <xs:enumeration value="CM7"/>
+ <xs:enumeration value="ARMV8MML"/>
+ <xs:enumeration value="ARMV8MBL"/>
+ <xs:enumeration value="CA5"/>
+ <xs:enumeration value="CA7"/>
+ <xs:enumeration value="CA8"/>
+ <xs:enumeration value="CA9"/>
+ <xs:enumeration value="CA15"/>
+ <xs:enumeration value="CA17"/>
+ <xs:enumeration value="CA53"/>
+ <xs:enumeration value="CA57"/>
+ <xs:enumeration value="CA72"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- revisionType specifies the CPU revision format as defined by ARM (rNpM) -->
+ <xs:simpleType name="revisionType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="r[0-9]*p[0-9]*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- EndianType pre-defines the tokens for specifying the endianess of the device -->
+ <xs:simpleType name="endianType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="little"/>
+ <xs:enumeration value="big"/>
+ <xs:enumeration value="selectable"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- dataType pre-defines the tokens in line with CMSIS data type definitions -->
+ <xs:simpleType name="dataTypeType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="uint8_t"/>
+ <xs:enumeration value="uint16_t"/>
+ <xs:enumeration value="uint32_t"/>
+ <xs:enumeration value="uint64_t"/>
+ <xs:enumeration value="int8_t"/>
+ <xs:enumeration value="int16_t"/>
+ <xs:enumeration value="int32_t"/>
+ <xs:enumeration value="int64_t"/>
+ <xs:enumeration value="uint8_t *"/>
+ <xs:enumeration value="uint16_t *"/>
+ <xs:enumeration value="uint32_t *"/>
+ <xs:enumeration value="uint64_t *"/>
+ <xs:enumeration value="int8_t *"/>
+ <xs:enumeration value="int16_t *"/>
+ <xs:enumeration value="int32_t *"/>
+ <xs:enumeration value="int64_t *"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- nvicPrioBitsType specifies the integer value range for the number of bits used in NVIC to encode priority levels -->
+ <xs:simpleType name="nvicPrioBitsType">
+ <xs:restriction base="xs:integer">
+ <xs:minInclusive value="2"/>
+ <xs:maxInclusive value="8"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- dimableIdentifierType specifies the subset and sequence of characters used for specifying identifiers that may contain %s from dim. -->
+ <!-- this is particularly important as these are used in ANSI C Structures during the device header file generation -->
+ <xs:simpleType name="dimableIdentifierType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="((%s)|(%s)[_A-Za-z]{1}[_A-Za-z0-9]*)|([_A-Za-z]{1}[_A-Za-z0-9]*(\[%s\])?)|([_A-Za-z]{1}[_A-Za-z0-9]*(%s)?[_A-Za-z0-9]*)"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- identifierType specifies the subset and sequence of characters used for specifying identifiers that must not contain %s from dim. -->
+ <!-- this is particularly important as these are used in ANSI C Structures during the device header file generation -->
+ <xs:simpleType name="identifierType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[_A-Za-z0-9]*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- V1.3: Protection Access Attribute Strings -->
+ <xs:simpleType name="protectionStringType">
+ <xs:restriction base="xs:string">
+ <!-- s = Secure -->
+ <!-- n = Non-secure -->
+ <!-- p = Privileged -->
+ <xs:pattern value="[snp]"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- V1.3: SAU Access Type -->
+ <xs:simpleType name="sauAccessType">
+ <xs:restriction base="xs:string">
+ <!-- c = non-secure Callable / Secure -->
+ <!-- n = Non-secure -->
+ <xs:pattern value="[cn]"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- dimIndexType specifies the subset and sequence of characters used for specifying the sequence of indices in register arrays -->
+ <xs:simpleType name="dimIndexType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9]+\-[0-9]+|[A-Z]-[A-Z]|[_0-9a-zA-Z]+(,\s*[_0-9a-zA-Z]+)+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- scaledNonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimal format -->
+ <xs:simpleType name="scaledNonNegativeInteger">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[+]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- enumeratedValueDataType specifies the number formats for the values in enumeratedValues -->
+ <xs:simpleType name="enumeratedValueDataType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[+]?(((0x|0X)[0-9a-fA-F]+)|([0-9]+)|((#|0b)[01xX]+))"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- accessType specfies the pre-defined tokens for the available accesses -->
+ <xs:simpleType name="accessType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="read-only"/>
+ <xs:enumeration value="write-only"/>
+ <xs:enumeration value="read-write"/>
+ <xs:enumeration value="writeOnce"/>
+ <xs:enumeration value="read-writeOnce"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- modifiedWriteValuesType specifies the pre-defined tokens for the write side effects -->
+ <xs:simpleType name="modifiedWriteValuesType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="oneToClear"/>
+ <xs:enumeration value="oneToSet"/>
+ <xs:enumeration value="oneToToggle"/>
+ <xs:enumeration value="zeroToClear"/>
+ <xs:enumeration value="zeroToSet"/>
+ <xs:enumeration value="zeroToToggle"/>
+ <xs:enumeration value="clear"/>
+ <xs:enumeration value="set"/>
+ <xs:enumeration value="modify"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- readAction type specifies the pre-defined tokens for read side effects -->
+ <xs:simpleType name="readActionType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="clear"/>
+ <xs:enumeration value="set"/>
+ <xs:enumeration value="modify"/>
+ <xs:enumeration value="modifyExternal"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- enumUsageType specifies the pre-defined tokens for selecting what access types an enumeratedValues set is associated with -->
+ <xs:simpleType name="enumUsageType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="read"/>
+ <xs:enumeration value="write"/>
+ <xs:enumeration value="read-write"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- bitRangeType specifies the bit numbers to be restricted values from 0 - 69 -->
+ <xs:simpleType name="bitRangeType">
+ <xs:restriction base="xs:token">
+ <xs:pattern value="\[([0-4])?[0-9]:([0-4])?[0-9]\]"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- writeContraintType specifies how to describe the restriction of the allowed values that can be written to a resource -->
+ <xs:complexType name="writeConstraintType">
+ <xs:choice>
+ <xs:element name="writeAsRead" type="xs:boolean"/>
+ <xs:element name="useEnumeratedValues" type="xs:boolean"/>
+ <xs:element name="range">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="minimum" type="scaledNonNegativeInteger"/>
+ <xs:element name="maximum" type="scaledNonNegativeInteger"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+ <!-- addressBlockType specifies the elements to describe an address block -->
+ <xs:complexType name="addressBlockType">
+ <xs:sequence>
+ <xs:element name="offset" type="scaledNonNegativeInteger"/>
+ <xs:element name="size" type="scaledNonNegativeInteger"/>
+ <xs:element name="usage">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="registers"/>
+ <xs:enumeration value="buffer"/>
+ <xs:enumeration value="reserved"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <!-- Version 1.3.2: optional access protection for an address block s=secure n=non-secure p=privileged -->
+ <xs:element name="protection" type="protectionStringType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <!-- interruptType specifies how to describe an interrupt associated with a peripheral -->
+ <xs:complexType name="interruptType">
+ <xs:sequence>
+ <xs:element name="name" type="stringType"/>
+ <xs:element name="description" type="xs:string" minOccurs="0"/>
+ <xs:element name="value" type="xs:integer"/>
+ </xs:sequence>
+ </xs:complexType>
+ <!-- register properties group specifies register size, access permission and reset value
+ this is used in multiple locations. Settings are inherited downstream. -->
+ <xs:group name="registerPropertiesGroup">
+ <xs:sequence>
+ <xs:element name="size" type="scaledNonNegativeInteger" minOccurs="0"/>
+ <xs:element name="access" type="accessType" minOccurs="0"/>
+ <!-- V 1.3: extended register access protection -->
+ <xs:element name="protection" type="protectionStringType" minOccurs="0"/>
+ <xs:element name="resetValue" type="scaledNonNegativeInteger" minOccurs="0"/>
+ <xs:element name="resetMask" type="scaledNonNegativeInteger" minOccurs="0"/>
+ </xs:sequence>
+ </xs:group>
+ <!-- bitRangeLsbMsbStyle specifies the bit position of a field within a register
+ by specifying the least significant and the most significant bit position -->
+ <xs:group name="bitRangeLsbMsbStyle">
+ <xs:sequence>
+ <xs:element name="lsb" type="scaledNonNegativeInteger"/>
+ <xs:element name="msb" type="scaledNonNegativeInteger"/>
+ </xs:sequence>
+ </xs:group>
+ <!-- bitRangeOffsetWidthStyle specifies the bit position of a field within a register
+ by specifying the least significant bit position and the bitWidth of the field -->
+ <xs:group name="bitRangeOffsetWidthStyle">
+ <xs:sequence>
+ <xs:element name="bitOffset" type="scaledNonNegativeInteger"/>
+ <xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/>
+ </xs:sequence>
+ </xs:group>
+
+ <!-- dimElementGroup specifies the number of array elements (dim), the address offset
+ between to consecutive array elements and an a comma seperated list of strings
+ being used for identifying each element in the array -->
+ <xs:group name="dimElementGroup">
+ <xs:sequence>
+ <xs:element name="dim" type="scaledNonNegativeInteger"/>
+ <xs:element name="dimIncrement" type="scaledNonNegativeInteger"/>
+ <xs:element name="dimIndex" type="dimIndexType" minOccurs="0"/>
+ <xs:element name="dimName" type="identifierType" minOccurs="0"/>
+ <xs:element name="dimArrayIndex" type="dimArrayIndexType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:complexType name="cpuType">
+ <xs:sequence>
+ <!-- V1.1: ARM processor name: Cortex-Mx / SCxxx -->
+ <xs:element name="name" type="cpuNameType"/>
+ <!-- V1.1: ARM defined revision of the cpu -->
+ <xs:element name="revision" type="revisionType"/>
+ <!-- V1.1: Endian specifies the endianess of the processor/device -->
+ <xs:element name="endian" type="endianType"/>
+ <!-- V1.1: mpuPresent specifies whether or not a memory protection unit is physically present -->
+ <xs:element name="mpuPresent" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.1: fpuPresent specifies whether or not a floating point hardware unit is physically present -->
+ <xs:element name="fpuPresent" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.2: fpuDP specifies a double precision floating point hardware unit is physically present-->
+ <xs:element name="fpuDP" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.2: icachePresent specifies that an instruction cache is physically present-->
+ <xs:element name="icachePresent" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.2: dcachePresent specifies that a data cache is physically present-->
+ <xs:element name="dcachePresent" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.2: itcmPresent specifies that an instruction tightly coupled memory is physically present-->
+ <xs:element name="itcmPresent" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.2: dtcmPresent specifies that an data tightly coupled memory is physically present-->
+ <xs:element name="dtcmPresent" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.1: vtorPresent is used for Cortex-M0+ based devices only. It indicates whether the Vector -->
+ <!-- Table Offset Register is implemented in the device or not -->
+ <xs:element name="vtorPresent" type="xs:boolean" minOccurs="0"/>
+ <!-- V1.1: nvicPrioBits specifies the number of bits used by the Nested Vectored Interrupt Controller -->
+ <!-- for defining the priority level = # priority levels -->
+ <xs:element name="nvicPrioBits" type="scaledNonNegativeInteger"/>
+ <!-- V1.1: vendorSystickConfig is set true if a custom system timer is implemented in the device -->
+ <!-- instead of the ARM specified SysTickTimer -->
+ <xs:element name="vendorSystickConfig" type="xs:boolean"/>
+ <!-- V1.3: reports the total number of interrupts implemented by the device (optional) -->
+ <xs:element name="deviceNumInterrupts" type="scaledNonNegativeInteger" minOccurs="0"/>
+ <!-- V1.3: sauRegions specifies the available number of address regions -->
+ <!-- if not specified a value of zero is assumed -->
+ <xs:element name="sauNumRegions" type="scaledNonNegativeInteger" minOccurs="0"/>
+ <!-- V1.3: SAU Regions Configuration (if fully or partially predefined) -->
+ <xs:element name="sauRegionsConfig" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="region" minOccurs="0" maxOccurs="unbounded">
+ <!-- addressBlockType specifies the elements to describe an address block -->
+ <xs:complexType>
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="base" type="scaledNonNegativeInteger"/>
+ <xs:element name="limit" type="scaledNonNegativeInteger"/>
+ <xs:element name="access" type="sauAccessType"/>
+ </xs:sequence>
+ <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/>
+ <xs:attribute name="name" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/>
+ <xs:attribute name="protectionWhenDisabled" type="protectionStringType" use="optional" default="s"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="enumeratedValueType">
+ <xs:sequence>
+ <!-- name is a ANSI C indentifier representing the value (C Enumeration) -->
+ <xs:element name="name" type="identifierType"/>
+ <!-- description contains the details about the semantics/behavior specified by this value -->
+ <xs:element name="description" type="stringType" minOccurs="0"/>
+ <xs:choice>
+ <xs:element name="value" type="enumeratedValueDataType"/>
+ <!-- isDefault specifies the name and description for all values that are not
+ specifically described individually -->
+ <xs:element name="isDefault" type="xs:boolean"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="enumerationType">
+ <xs:sequence>
+ <!-- name specfies a reference to this enumeratedValues section for reuse purposes
+ this name does not appear in the System Viewer nor the Header File. -->
+ <xs:element name="name" type="identifierType" minOccurs="0"/>
+ <!-- overrides the hierarchical enumeration type in the device header file. User is responsible for uniqueness across description -->
+ <xs:element name="headerEnumName" type="identifierType" minOccurs="0"/>
+ <!-- usage specifies whether this enumeration is to be used for read or write or
+ (read and write) accesses -->
+ <xs:element name="usage" type="enumUsageType" minOccurs="0"/>
+ <!-- enumeratedValue derivedFrom=<identifierType> -->
+ <xs:element name="enumeratedValue" type="enumeratedValueType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="derivedFrom" type="identifierType" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="dimArrayIndexType">
+ <xs:sequence>
+ <xs:element name="headerEnumName" type="identifierType" minOccurs="0"/>
+ <xs:element name="enumeratedValue" type="enumeratedValueType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="fieldType">
+ <xs:sequence>
+ <xs:group ref="dimElementGroup" minOccurs="0"/>
+ <!-- name specifies a field's name. The System Viewer and the device header file will
+ use the name of the field as identifier -->
+ <xs:element name="name" type="dimableIdentifierType"/>
+ <!-- description contains reference manual level information about the function and
+ options of a field -->
+ <xs:element name="description" type="stringType" minOccurs="0"/>
+ <!-- alternative specifications of the bit position of the field within the register -->
+ <xs:choice minOccurs="1" maxOccurs="1">
+ <!-- bit field described by lsb followed by msb tag -->
+ <xs:group ref="bitRangeLsbMsbStyle"/>
+ <!-- bit field described by bit offset relative to Bit0 + bit width of field -->
+ <xs:group ref="bitRangeOffsetWidthStyle"/>
+ <!-- bit field described by [<msb>:<lsb>] -->
+ <xs:element name="bitRange" type="bitRangeType"/>
+ </xs:choice>
+ <!-- access describes the predefined permissions for the field. -->
+ <xs:element name="access" type="accessType" minOccurs="0"/>
+ <!-- predefined description of write side effects -->
+ <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
+ <!-- writeContstraint specifies the subrange of allowed values -->
+ <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
+ <!-- readAction specifies the read side effects. -->
+ <xs:element name="readAction" type="readActionType" minOccurs="0"/>
+ <!-- enumeratedValues derivedFrom=<identifierType> -->
+ <xs:element name="enumeratedValues" type="enumerationType" minOccurs="0" maxOccurs="2">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="fieldsType">
+ <xs:sequence>
+ <!-- field derivedFrom=<identifierType> -->
+ <xs:element name="field" type="fieldType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="registerType">
+ <xs:sequence>
+ <xs:group ref="dimElementGroup" minOccurs="0"/>
+ <!-- name specifies the name of the register. The register name is used by System Viewer and
+ device header file generator to represent a register -->
+ <xs:element name="name" type="dimableIdentifierType"/>
+ <!-- display name specifies a register name without the restritions of an ANSIS C identifier.
+ The use of this tag is discouraged because it does not allow consistency between
+ the System View and the device header file. -->
+ <xs:element name="displayName" type="stringType" minOccurs="0"/>
+ <!-- description contains a reference manual level description about the register and it's purpose -->
+ <xs:element name="description" type="stringType" minOccurs="0"/>
+ <xs:choice>
+ <!-- alternateGroup specifies the identifier of the subgroup a register belongs to.
+ This is useful if a register has a different description per mode but a single name -->
+ <xs:element name="alternateGroup" type="identifierType" minOccurs="0"/>
+ <!-- V1.1: alternateRegister specifies an alternate register description for an address that is
+ already fully described. In this case the register name must be unique within the peripheral -->
+ <xs:element name="alternateRegister" type="dimableIdentifierType" minOccurs="0"/>
+ </xs:choice>
+ <!-- addressOffset describes the address of the register relative to the baseOffset of the peripheral -->
+ <xs:element name="addressOffset" type="scaledNonNegativeInteger"/>
+ <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value. These default values are inherited to all fields contained in this register -->
+ <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
+ <!-- V1.1: dataType specifies a CMSIS compliant native dataType for a register (i.e. signed, unsigned, pointer) -->
+ <xs:element name="dataType" type="dataTypeType" minOccurs="0"/>
+ <!-- modifiedWriteValues specifies the write side effects -->
+ <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
+ <!-- writeConstraint specifies the subset of allowed write values -->
+ <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
+ <!-- readAcction specifies the read side effects -->
+ <xs:element name="readAction" type="readActionType" minOccurs="0"/>
+ <!-- fields section contains all fields that belong to this register -->
+ <xs:element name="fields" type="fieldsType" minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
+ </xs:complexType>
+
+ <!-- V1.1: A cluster is a set of registers that are composed into a C data structure in the device header file -->
+ <xs:complexType name="clusterType">
+ <xs:sequence>
+ <xs:group ref="dimElementGroup" minOccurs="0"/>
+ <xs:element name="name" type="dimableIdentifierType"/>
+ <xs:element name="description" type="xs:string"/>
+ <!-- V1.1: alternateCluster specifies an alternative description for a cluster address range that is
+ already fully described. In this case the cluster name must be unique within the peripheral -->
+ <xs:element name="alternateCluster" type="dimableIdentifierType" minOccurs="0"/>
+ <!-- V1.1: headerStructName specifies the name for the cluster structure typedef
+ used in the device header generation instead of the cluster name -->
+ <xs:element name="headerStructName" type="identifierType" minOccurs="0"/>
+ <xs:element name="addressOffset" type="scaledNonNegativeInteger"/>
+ <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value. These default values are inherited to all registers contained in this peripheral -->
+ <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
+ <xs:sequence>
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="register" type="registerType" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- 1.3: nesting of cluster is supported -->
+ <xs:element name="cluster" type="clusterType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:sequence>
+ <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
+ </xs:complexType>
+
+ <!-- the registers section can have an arbitrary list of cluster and register sections -->
+ <xs:complexType name="registersType">
+ <xs:choice minOccurs="1" maxOccurs="unbounded">
+ <xs:element name="cluster" type="clusterType"/>
+ <xs:element name="register" type="registerType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="peripheralType">
+ <xs:sequence>
+ <!-- 1.3: specify uni-dimensional array of peripheral - requires name="<name>[%s]" -->
+ <xs:group ref="dimElementGroup" minOccurs="0"/>
+ <!-- name specifies the name of a peripheral. This name is used for the System View and device header file -->
+ <xs:element name="name" type="dimableIdentifierType"/>
+ <!-- version specifies the version of the peripheral descriptions -->
+ <xs:element name="version" type="stringType" minOccurs="0"/>
+ <!-- description provides a high level functional description of the peripheral -->
+ <xs:element name="description" type="stringType" minOccurs="0"/>
+ <!-- V1.1: alternatePeripheral specifies an alternative description for an address range that is
+ already fully by a peripheral described. In this case the peripheral name must be unique within the device description -->
+ <xs:element name="alternatePeripheral" type="dimableIdentifierType" minOccurs="0"/>
+ <!-- groupName assigns this peripheral to a group of peripherals. This is only used bye the System View -->
+ <xs:element name="groupName" type="xs:Name" minOccurs="0"/>
+ <!-- prependToName specifies a prefix that is placed in front of each register name of this peripheral.
+ The device header file will show the registers in a C-Struct of the peripheral without the prefix. -->
+ <xs:element name="prependToName" type="identifierType" minOccurs="0"/>
+ <!-- appendToName is a postfix that is appended to each register name of this peripheral. The device header
+ file will sho the registers in a C-Struct of the peripheral without the postfix -->
+ <xs:element name="appendToName" type="identifierType" minOccurs="0"/>
+ <!-- V1.1: headerStructName specifies the name for the peripheral structure typedef
+ used in the device header generation instead of the peripheral name -->
+ <xs:element name="headerStructName" type="dimableIdentifierType" minOccurs="0"/>
+ <!-- disableCondition contains a logical expression based on constants and register or bit-field values
+ if the condition is evaluated to true, the peripheral display will be disabled -->
+ <xs:element name="disableCondition" type="stringType" minOccurs="0"/>
+ <!-- baseAddress specifies the absolute base address of a peripheral. For derived peripherals it is mandatory
+ to specify a baseAddress. -->
+ <xs:element name="baseAddress" type="scaledNonNegativeInteger"/>
+ <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value. These default values are inherited to all registers contained in this peripheral -->
+ <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
+ <!-- addressBlock specifies one or more address ranges that are assigned exclusively to this peripheral.
+ derived peripherals may have no addressBlock, however none-derived peripherals are required to specify
+ at least one address block -->
+ <xs:element name="addressBlock" type="addressBlockType" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- interrupt specifies can specify one or more interrtupts by name, description and value -->
+ <xs:element name="interrupt" type="interruptType" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- registers section contains all registers owned by the peripheral. In case a peripheral gets derived it does
+ not have its own registers section, hence this section is optional. A unique peripheral without a
+ registers section is not allowed -->
+ <xs:element name="registers" type="registersType" minOccurs="0" maxOccurs="1">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
+ </xs:complexType>
+
+ <!-- ==================================================== -->
+ <!-- The top level element of a description is the device -->
+ <!-- ==================================================== -->
+ <xs:element name="device" nillable="true">
+ <xs:complexType>
+ <xs:sequence>
+ <!-- V1.1: Vendor Name -->
+ <xs:element name="vendor" type="stringType" minOccurs="0"/>
+ <!-- V1.1: Vendor ID - a short name for referring to the vendor (e.g. Texas Instruments = TI) -->
+ <xs:element name="vendorID" type="identifierType" minOccurs="0"/>
+ <!-- name specifies the device name being described -->
+ <xs:element name="name" type="identifierType"/>
+ <!-- V1.1: series specifies the device series or family name -->
+ <xs:element name="series" type="stringType" minOccurs="0"/>
+ <!-- version specifies the version of the device description -->
+ <xs:element name="version" type="stringType"/>
+ <!-- description is a string describing the device features (e.g. memory size, peripherals, etc.) -->
+ <xs:element name="description" type="stringType"/>
+ <!-- V1.1: licenseText specifies the file header section to be included in any derived file -->
+ <xs:element name="licenseText" type="stringType" minOccurs="0"/>
+ <!-- V1.1: cpu specifies the details of the processor included in the device -->
+ <xs:element name="cpu" type="cpuType" minOccurs="0"/>
+ <!-- V1.1: the tag specifies the filename without extension of the CMSIS System Device include file.
+ This tag is used by the header file generator for customizing the include statement referencing the
+ CMSIS system file within the CMSIS device header file. By default the filename is "system_<device.name>"
+ In cases a device series shares a single system header file, the name of the series shall be used
+ instead of the individual device name. -->
+ <xs:element name="headerSystemFilename" type="identifierType" minOccurs="0"/>
+ <!-- V1.1: headerDefinitionPrefix specifies the string being prepended to all names of types defined in
+ generated device header file -->
+ <xs:element name="headerDefinitionsPrefix" type="identifierType" minOccurs="0"/>
+ <!-- addressUnitBits specifies the size of the minimal addressable unit in bits -->
+ <xs:element name="addressUnitBits" type="scaledNonNegativeInteger"/>
+ <!-- width specifies the number of bits for the maximum single transfer size allowed by the bus interface.
+ This sets the maximum size of a single register that can be defined for an address space -->
+ <xs:element name="width" type="scaledNonNegativeInteger"/>
+ <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value -->
+ <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
+
+ <!-- peripherals is containing all peripherals -->
+ <xs:element name="peripherals">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="peripheral" type="peripheralType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Vendor Extensions: this section captures custom extensions. This section will be ignored by default -->
+ <xs:element name="vendorExtensions" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded">
+ </xs:any>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="schemaVersion" type="xs:decimal" use="required"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
+
+<!-- END OF FILE --> \ No newline at end of file
diff --git a/docs/SVD/html/CMSIS_Logo_Final.png b/docs/SVD/html/CMSIS_Logo_Final.png
new file mode 100644
index 0000000..2056b7e
--- /dev/null
+++ b/docs/SVD/html/CMSIS_Logo_Final.png
Binary files differ
diff --git a/docs/SVD/html/CMSIS_SVD_Schema_Gen.png b/docs/SVD/html/CMSIS_SVD_Schema_Gen.png
new file mode 100644
index 0000000..bf54eef
--- /dev/null
+++ b/docs/SVD/html/CMSIS_SVD_Schema_Gen.png
Binary files differ
diff --git a/docs/SVD/html/SystemViewer_Generated.png b/docs/SVD/html/SystemViewer_Generated.png
new file mode 100644
index 0000000..e189de7
--- /dev/null
+++ b/docs/SVD/html/SystemViewer_Generated.png
Binary files differ
diff --git a/docs/SVD/html/bc_s.png b/docs/SVD/html/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/docs/SVD/html/bc_s.png
Binary files differ
diff --git a/docs/SVD/html/bdwn.png b/docs/SVD/html/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/docs/SVD/html/bdwn.png
Binary files differ
diff --git a/docs/SVD/html/closed.png b/docs/SVD/html/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/docs/SVD/html/closed.png
Binary files differ
diff --git a/docs/SVD/html/cmsis.css b/docs/SVD/html/cmsis.css
new file mode 100644
index 0000000..bba1010
--- /dev/null
+++ b/docs/SVD/html/cmsis.css
@@ -0,0 +1,1282 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 1.3;
+}
+
+/* CMSIS styles */
+
+.style1 {
+ text-align: center;
+}
+.style2 {
+ color: #0000FF;
+ font-weight: normal;
+}
+.style3 {
+ text-align: left;
+}
+.style4 {
+ color: #008000;
+}
+.style5 {
+ color: #0000FF;
+}
+.style6 {
+ color: #000000;
+ font-style:italic;
+}
+.mand {
+ color: #0000FF;
+}
+.opt {
+ color: #008000;
+}
+.cond {
+ color: #990000;
+}
+
+.choice
+{
+ background-color:#F7F9D0;
+}
+.seq
+{
+ background-color:#C9DECB;
+}
+.group1
+{
+ background-color:#F8F1F1;
+}
+.group2
+{
+ background-color:#DCEDEA;
+}
+
+
+ul ul {
+ list-style-type: disc;
+}
+
+ul ul ul {
+ list-style-type: disc;
+}
+
+ul.hierarchy {
+ color: green;
+}
+
+em {
+ color: #000000;
+ font-style:italic;
+}
+
+
+
+/* CMSIS Tables */
+table.cmtab1 {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+ text-align: justify;
+ width:70%;
+}
+
+th.cmtab1 {
+ background: #EBEFF6;
+ font-weight: bold;
+ height: 28px;
+}
+
+td.cmtab1 {
+ padding:1px;
+ text-align: left;
+}
+
+table.cmtable {
+ border-collapse:collapse;
+ text-align: justify;
+}
+
+table.cmtable td, table.cmtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.cmtable th {
+ background-color: #EBEFF6;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+}
+
+td.MonoTxt {
+ font-family:"Arial monospaced for SAP";
+}
+
+td.XML-Token
+{
+ azimuth: 180;
+ font-style:italic;
+ color:Maroon;
+ z-index:20;
+
+}
+
+span.XML-Token
+{
+ azimuth: 180;
+ font-style:italic;
+ color:Maroon;
+ z-index:20;
+
+}
+
+span.h2
+{
+ font-size: 120%;
+ font-weight: bold;
+}
+
+div.new
+{
+ background-color:#ccffcc; /* light green */
+}
+
+div.mod
+{
+ background-color:#ffe6cc; /* light amber */
+}
+
+div.del
+{
+ background-color:#ffcccc; /* light red */
+}
+
+/* @group Heading Levels */
+
+h1 {
+ font-size: 150%;
+}
+
+.title {
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A2B4D8;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3A568E;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4464A5;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9AAED5;
+ color: #ffffff;
+ border: 1px double #849CCC;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px;
+ margin: 4px;
+ background-color: #FBFCFD;
+ border: 1px solid #C3CFE6;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+}
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C3CFE6;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C3CFE6;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EDF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9AAED5;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A2B4D8;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4769AD;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #C3CFE6;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4464A5;
+ white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4464A5;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A2B4D8;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A7B8DA;
+ border-left: 1px solid #A7B8DA;
+ border-right: 1px solid #A7B8DA;
+ padding: 6px 0px 6px 0px;
+ color: #233456;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E7F3;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A7B8DA;
+ border-left: 1px solid #A7B8DA;
+ border-right: 1px solid #A7B8DA;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #708CC4;
+ border-top:1px solid #5072B7;
+ border-left:1px solid #5072B7;
+ border-right:1px solid #C3CFE6;
+ border-bottom:1px solid #C3CFE6;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3A568E;
+}
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #293C63;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2B4069;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #EBEFF6;
+ color: #000000;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ width: 100%;
+ margin-bottom: 10px;
+ border: 1px solid #A7B8DA;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A7B8DA;
+ border-bottom: 1px solid #A7B8DA;
+ vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A7B8DA;
+ width: 100%;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E7F3;
+ font-size: 90%;
+ color: #233456;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A7B8DA;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ height:30px;
+ line-height:30px;
+ color:#889FCE;
+ border:solid 1px #C1CDE5;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#344D7E;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6583BF;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#344D7E;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.ingroups
+{
+ margin-left: 5px;
+ font-size: 8pt;
+ padding-left: 5px;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C3CFE6;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 7px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5072B7;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #8EA4D0;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#314877;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D7DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4464A5;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/docs/SVD/html/doxygen.css b/docs/SVD/html/doxygen.css
new file mode 100644
index 0000000..f0f36f8
--- /dev/null
+++ b/docs/SVD/html/doxygen.css
@@ -0,0 +1,1366 @@
+/* The standard CSS for doxygen 1.8.6 */
+
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+p.starttd {
+ margin-top: 0px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3D578C;
+}
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/docs/SVD/html/doxygen.png b/docs/SVD/html/doxygen.png
new file mode 100644
index 0000000..3ff17d8
--- /dev/null
+++ b/docs/SVD/html/doxygen.png
Binary files differ
diff --git a/docs/SVD/html/dynsections.js b/docs/SVD/html/dynsections.js
new file mode 100644
index 0000000..ed092c7
--- /dev/null
+++ b/docs/SVD/html/dynsections.js
@@ -0,0 +1,97 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+ content.hide();
+ summary.show();
+ $(linkObj).addClass('closed').removeClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ content.show();
+ summary.hide();
+ $(linkObj).removeClass('closed').addClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+ $('table.directory tr').
+ removeClass('even').filter(':visible:even').addClass('even');
+}
+function toggleLevel(level)
+{
+ $('table.directory tr').each(function(){
+ var l = this.id.split('_').length-1;
+ var i = $('#img'+this.id.substring(3));
+ var a = $('#arr'+this.id.substring(3));
+ if (l<level+1) {
+ i.attr('src','ftv2folderopen.png');
+ a.attr('src','ftv2mnode.png');
+ $(this).show();
+ } else if (l==level+1) {
+ i.attr('src','ftv2folderclosed.png');
+ a.attr('src','ftv2pnode.png');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+
+function toggleFolder(id)
+{
+ //The clicked row
+ var currentRow = $('#row_'+id);
+ var currentRowImages = currentRow.find("img");
+
+ //All rows after the clicked row
+ var rows = currentRow.nextAll("tr");
+
+ //Only match elements AFTER this one (can't hide elements before)
+ var childRows = rows.filter(function() {
+ var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+ return this.id.match(re);
+ });
+
+ //First row is visible we are HIDING
+ if (childRows.filter(':first').is(':visible')===true) {
+ currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
+ currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
+ rows.filter("[id^=row_"+id+"]").hide();
+ } else { //We are SHOWING
+ //All sub images
+ var childImages = childRows.find("img");
+ var childImg = childImages.filter("[id^=img]");
+ var childArr = childImages.filter("[id^=arr]");
+
+ currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
+ currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
+ childImg.attr('src','ftv2folderclosed.png'); //children closed
+ childArr.attr('src','ftv2pnode.png'); //children closed
+ childRows.show(); //show all children
+ }
+ updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+
diff --git a/docs/SVD/html/elem_cpu.html b/docs/SVD/html/elem_cpu.html
new file mode 100644
index 0000000..af2a026
--- /dev/null
+++ b/docs/SVD/html/elem_cpu.html
@@ -0,0 +1,301 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/device/cpu element</title>
+<title>CMSIS-SVD: /device/cpu element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('elem_cpu.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/device/cpu element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The CPU section describes the processor included in the microcontroller device. This section is mandatory if the SVD file is used to generate the device header file.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;device&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;cpu&gt;</div>
+<div class="line"> &lt;name&gt;CM7&lt;/name&gt; </div>
+<div class="line"> &lt;revision&gt;r0p0&lt;/revision&gt;</div>
+<div class="line"> &lt;endian&gt;little&lt;/endian&gt;</div>
+<div class="line"> &lt;mpuPresent&gt;<span class="keyword">true</span>&lt;/mpuPresent&gt;</div>
+<div class="line"> &lt;!-- has <span class="keywordtype">double</span> precision FPU --&gt;</div>
+<div class="line"> &lt;fpuPresent&gt;<span class="keyword">true</span>&lt;/fpuPresent&gt;</div>
+<div class="line"> &lt;fpuDP&gt;<span class="keyword">true</span>&lt;/fpuDP&gt;</div>
+<div class="line"> &lt;!-- has instruction and data cache --&gt;</div>
+<div class="line"> &lt;icachePresent&gt;<span class="keyword">true</span>&lt;/icachePresent&gt;</div>
+<div class="line"> &lt;dcachePresent&gt;<span class="keyword">true</span>&lt;/dcachePresent&gt;</div>
+<div class="line"> &lt;!-- has no instruction nor data tighly coupled memory --&gt;</div>
+<div class="line"> &lt;itcmPresent&gt;<span class="keyword">false</span>&lt;/itcmPresent&gt;</div>
+<div class="line"> &lt;dtcmPresent&gt;<span class="keyword">false</span>&lt;/dtcmPresent&gt;</div>
+<div class="line"> &lt;nvicPrioBits&gt;4&lt;/nvicPrioBits&gt;</div>
+<div class="line"> &lt;vendorSystickConfig&gt;<span class="keyword">false</span>&lt;/vendorSystickConfig&gt; </div>
+<div class="line"> &lt;/cpu&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;device&gt;</div>
+</div><!-- fragment --><p>This example describes a device based on a <span class="XML-Token">Cortex-M7</span> core of HW revision <span class="XML-Token">r0p0</span>, with fixed <span class="XML-Token">little</span> endian memory scheme, including <span class="XML-Token">Memory Protection Unit</span> and <span class="XML-Token">double precision hardware Floating Point Unit</span>. It has a <span class="XML-Token">data cache</span> and no <span class="XML-Token">instruction</span> nor a tightly coupled memory. The Nested Vectored Interrupt Controller uses <span class="XML-Token">4</span> bits to configure the priority of an interrupt. It is equipped with the standard System Tick Timer as defined by Arm.</p>
+<p><a class="anchor" id="elem_cpu_sc"></a><b>/device/cpu</b> </p>
+<table class="cmtable" summary="CPU Section Elements">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_device.html">device</a> </td><td colspan="3"><a class="el" href="elem_device.html">/device</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>name </td><td>The predefined tokens are:<ul>
+<li><span class="XML-Token">CM0</span>: Arm Cortex-M0</li>
+<li><span class="XML-Token">CM0PLUS</span>: Arm Cortex-M0+</li>
+<li><span class="XML-Token">CM0+</span>: Arm Cortex-M0+</li>
+<li><span class="XML-Token">CM1</span>: Arm Cortex-M1</li>
+<li><span class="XML-Token">SC000</span>: Arm Secure Core SC000</li>
+<li><span class="XML-Token">CM23</span>: Arm Cortex-M23</li>
+<li><span class="XML-Token">CM3</span>: Arm Cortex-M3</li>
+<li><span class="XML-Token">CM33</span>: Arm Cortex-M33</li>
+<li><span class="XML-Token">SC300</span>: Arm Secure Core SC300</li>
+<li><span class="XML-Token">CM4</span>: Arm Cortex-M4</li>
+<li><span class="XML-Token">CM7</span>: Arm Cortex-M7</li>
+<li><span class="XML-Token">CA5</span>: Arm Cortex-A5</li>
+<li><span class="XML-Token">CA7</span>: Arm Cortex-A7</li>
+<li><span class="XML-Token">CA8</span>: Arm Cortex-A8</li>
+<li><span class="XML-Token">CA9</span>: Arm Cortex-A9</li>
+<li><span class="XML-Token">CA15</span>: Arm Cortex-A15</li>
+<li><span class="XML-Token">CA17</span>: Arm Cortex-A17</li>
+<li><span class="XML-Token">CA53</span>: Arm Cortex-A53</li>
+<li><span class="XML-Token">CA57</span>: Arm Cortex-A57</li>
+<li><span class="XML-Token">CA72</span>: Arm Cortex-A72</li>
+<li><span class="XML-Token">other</span>: other processor architectures </li>
+</ul>
+</td><td>cpuNameType </td><td>1..1 </td></tr>
+<tr>
+<td>revision </td><td>Define the HW revision of the processor. The version format is <span class="XML-Token">r<em>N</em>p<em>M</em></span> (N,M = [0 - 99]). </td><td>revisionType </td><td>1..1 </td></tr>
+<tr>
+<td>endian </td><td>Define the endianness of the processor being one of:<ul>
+<li><span class="XML-Token">little</span>: little endian memory (least significant byte gets allocated at the lowest address).</li>
+<li><span class="XML-Token">big</span>: byte invariant big endian data organization (most significant byte gets allocated at the lowest address).</li>
+<li><span class="XML-Token">selectable</span>: little and big endian are configurable for the device and become active after the next reset.</li>
+<li><span class="XML-Token">other</span>: the endianness is neither little nor big endian. </li>
+</ul>
+</td><td>endianType </td><td>1..1 </td></tr>
+<tr>
+<td>mpuPresent </td><td>Indicate whether the processor is equipped with a memory protection unit (MPU). This tag is either set to <span class="XML-Token">true</span> or <span class="XML-Token">false</span>, <span class="XML-Token">1</span> or <span class="XML-Token">0</span>. </td><td>boolean </td><td>1..1 </td></tr>
+<tr>
+<td>fpuPresent </td><td>Indicate whether the processor is equipped with a hardware floating point unit (FPU). Cortex-M4, Cortex-M7 and Cortex-M33 are the only available Cortex-M processor with an optional FPU. This tag is either set to <span class="XML-Token">true</span> or <span class="XML-Token">false</span>, <span class="XML-Token">1</span> or <span class="XML-Token">0</span>. </td><td>boolean </td><td>1..1 </td></tr>
+<tr>
+<td>fpuDP </td><td>Indicate whether the processor is equipped with a double precision floating point unit. This element is valid only when <em>&lt;fpuPresent&gt;</em> is set to <span class="XML-Token">true</span>. Currently, only Cortex-M7 processors can have a double precision floating point unit. </td><td>boolean </td><td>0..1 </td></tr>
+<tr>
+<td>icachePresent </td><td>Indicate whether the processor has an instruction cache. Note: only for Cortex-M7-based devices. </td><td>boolean </td><td>0..1 </td></tr>
+<tr>
+<td>dcachePresent </td><td>Indicate whether the processor has a data cache. Note: only for Cortex-M7-based devices. </td><td>boolean </td><td>0..1 </td></tr>
+<tr>
+<td>itcmPresent </td><td>Indicate whether the processor has an instruction tightly coupled memory. Note: only an option for Cortex-M7-based devices. </td><td>boolean </td><td>0..1 </td></tr>
+<tr>
+<td>dtcmPresent </td><td>Indicate whether the processor has a data tightly coupled memory. Note: only for Cortex-M7-based devices. </td><td>boolean </td><td>0..1 </td></tr>
+<tr>
+<td>vtorPresent </td><td>Indicate whether the Vector Table Offset Register (VTOR) is implemented in Cortex-M0+ based devices. This tag is either set to <span class="XML-Token">true</span> or <span class="XML-Token">false</span>, <span class="XML-Token">1</span> or <span class="XML-Token">0</span>. If not specified, then VTOR is assumed to be present. </td><td>boolean </td><td>0..1 </td></tr>
+<tr>
+<td>nvicPrioBits </td><td>Define the number of bits available in the Nested Vectored Interrupt Controller (NVIC) for configuring priority. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>vendorSystickConfig </td><td>Indicate whether the processor implements a vendor-specific System Tick Timer. If <span class="XML-Token">false</span>, then the Arm-defined System Tick Timer is available. If <span class="XML-Token">true</span>, then a vendor-specific System Tick Timer must be implemented. This tag is either set to <span class="XML-Token">true</span> or <span class="XML-Token">false</span>, <span class="XML-Token">1</span> or <span class="XML-Token">0</span>. </td><td>boolean </td><td>1..1 </td></tr>
+<tr>
+<td>deviceNumInterrupts </td><td>Add <span class="XML-Token">1</span> to the highest interrupt number and specify this number in here. You can start to enumerate interrupts from <span class="XML-Token">0</span>. Gaps might exist between interrupts. For example, you have defined interrupts with the numbers <span class="XML-Token">1</span>, <span class="XML-Token">2</span>, and <span class="XML-Token">8</span>. Add <span class="XML-Token">9 :(8+1)</span> into this field. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td>sauNumRegions </td><td>Indicate the amount of regions in the Security Attribution Unit (SAU). If the value is greater than zero, then the device has a SAU and the number indicates the maximum amount of available address regions. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_cpu.html#elem_sauRegionsConfig">sauRegionsConfig</a> </td><td>If the Secure Attribution Unit is preconfigured by HW or Firmware, then the settings are described here. </td><td>SauRegionsConfigType </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_sauRegionsConfig"></a>
+/device/cpu/sauRegionsConfig element</h1>
+<p>Set the configuration for the Secure Attribution Unit (SAU) when they are preconfigured by HW or Firmware.</p>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;device&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;sauRegionsConfig protectionWhenDisabled=<span class="stringliteral">&quot;n&quot;</span>&gt;</div>
+<div class="line"> &lt;region&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/region&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;region&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/region&gt;</div>
+<div class="line"> &lt;/sauRegionsConfig&gt;</div>
+<div class="line"> ...</div>
+<div class="line">&lt;/device&gt;</div>
+</div><!-- fragment --><p>The example defines two Secure Attribution Units, which are enabled by default. When the SAU regions are disabled, the protection level is non-secure (<span class="XML-Token">n</span>).</p>
+<p><a class="anchor" id="elem_sauRegionsConfig_sc"></a><b>/device/cpu/sauRegionsConfig</b> </p>
+<table class="cmtable" summary="sauRegionsConfig tab elements">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_cpu.html">cpu</a> </td><td colspan="3"><a class="el" href="elem_cpu.html">/device/cpu element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>enabled </td><td>Specify whether the Secure Attribution Units are enabled. The following values can be used: <span class="XML-Token">true</span>,<span class="XML-Token">false</span>,<span class="XML-Token">1</span>, and <span class="XML-Token">0</span>. </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td><a class="el" href="elem_special.html#elem_protection">protectionWhenDisabled</a> </td><td>Set the protection mode for disabled regions. When the complete SAU is disabled, the whole memory is treated either <span class="XML-Token">"s"</span>=secure or <span class="XML-Token">"n"</span>=non-secure. This value is inherited by the <em>&lt;region&gt;</em> element. Refer to element <a class="el" href="elem_special.html#elem_protection">protection</a> for details and predefined values. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="elem_cpu.html#elem_region">region</a> </td><td>Group to configure SAU regions. </td><td>xs:string </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_region"></a>
+/device/cpu/sauRegionsConfig/region element</h1>
+<p>Define the regions of the Secure Attribution Unit (SAU). The protection level is inherited from the attribute <em>&lt;protectionWhenDisabled&gt;</em> of the enclosing element <a class="el" href="elem_cpu.html#elem_sauRegionsConfig">sauRegionsConfig</a>.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;sauRegionsConfig&gt;</div>
+<div class="line"> &lt;region name=<span class="stringliteral">&quot;SAU1&quot;</span>&gt;</div>
+<div class="line"> &lt;base&gt;0x10001000&lt;/base&gt;</div>
+<div class="line"> &lt;limit&gt;0x10005000&lt;/limit&gt;</div>
+<div class="line"> &lt;access&gt;n&lt;/access&gt;</div>
+<div class="line"> &lt;/region&gt;</div>
+<div class="line"> &lt;region enabled=<span class="stringliteral">&quot;false&quot;</span> name=<span class="stringliteral">&quot;SAU2&quot;</span>&gt;</div>
+<div class="line"> &lt;base&gt;0x10006000&lt;/base&gt;</div>
+<div class="line"> &lt;limit&gt;0x10008000&lt;/limit&gt;</div>
+<div class="line"> &lt;access&gt;c&lt;/access&gt;</div>
+<div class="line"> &lt;/region&gt;</div>
+<div class="line">&lt;/sauRegionsConfig&gt;</div>
+</div><!-- fragment --><p>The example defines two secure regions with the names <em>SAU1</em> and <em>SAU2</em>. SAU1 has the address boundries <span class="XML-Token">0x10001000</span> and <span class="XML-Token">0x10005000</span>. The region has non-secure access rights. SAU2 has the address boundries <span class="XML-Token">0x10006000</span> and <span class="XML-Token">0x10008000</span>. The region has secure callable access rights.</p>
+<p><a class="anchor" id="elem_region_sc"></a> <b>/device/cpu/sauRegionsConfig/region</b> </p>
+<table class="cmtable" summary="region tab elements">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_cpu.html#elem_sauRegionsConfig">sauRegionsConfig</a> </td><td colspan="3"><a class="el" href="elem_cpu.html#elem_sauRegionsConfig">/device/cpu/sauRegionsConfig element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>enabled </td><td>Specify whether the Secure Attribution Units are enabled. The following values can be used: <span class="XML-Token">true</span> and <span class="XML-Token">false</span>, or <span class="XML-Token">1</span> and <span class="XML-Token">0</span>. Default value is <span class="XML-Token">true</span>. </td><td>xs:boolean </td><td>optional </td></tr>
+<tr>
+<td>name </td><td>Identifiy the region with a name. </td><td>xs:string </td><td>optional </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>base </td><td>Base address of the region. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>limit </td><td>Limit address of the region. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>access </td><td>Use one of the following predefined values to define the acces type of a region: <br/>
+ - <span class="XML-Token">n</span> : non-secure <br/>
+ - <span class="XML-Token">c</span> : secure callable </td><td>xs:string </td><td>1..1 </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/elem_device.html b/docs/SVD/html/elem_device.html
new file mode 100644
index 0000000..cf66a15
--- /dev/null
+++ b/docs/SVD/html/elem_device.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/device element</title>
+<title>CMSIS-SVD: /device element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('elem_device.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/device element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The element <em>&lt;device&gt;</em> provides the outermost frame of the description.</p>
+<ul>
+<li>Only one <em>&lt;device&gt;</em> section is allowed per file. All other elements are described within this scope.</li>
+<li>A <em>&lt;device&gt;</em> contains one or more peripherals, but one <em>&lt;cpu&gt;</em> description.</li>
+<li>Optional elements such as <em>&lt;size&gt;</em>, <em>&lt;access&gt;</em>, or <em>&lt;resetValue&gt;</em> defined on this level represent default values for registers and can be refined at lower levels.</li>
+</ul>
+<p><b>Example</b> </p>
+<div class="fragment"><div class="line">&lt;device schemaVersion=<span class="stringliteral">&quot;1.3&quot;</span> xmlns:xs=<span class="stringliteral">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> xs:noNamespaceSchemaLocation=<span class="stringliteral">&quot;CMSIS-SVD.xsd&quot;</span>&gt;</div>
+<div class="line"> &lt;vendor&gt;ARM Ltd.&lt;/vendor&gt;</div>
+<div class="line"> &lt;vendorID&gt;ARM&lt;/vendorID&gt;</div>
+<div class="line"> &lt;name&gt;ARM_Cortex_M4&lt;/name&gt;</div>
+<div class="line"> &lt;series&gt;ARMCM4&lt;/series&gt;</div>
+<div class="line"> &lt;version&gt;0.1&lt;/version&gt;</div>
+<div class="line"> &lt;description&gt;Arm Cortex-M4 based Microcontroller demonstration device&lt;/description&gt;</div>
+<div class="line"> &lt;licenseText&gt;</div>
+<div class="line"> Arm Limited (Arm) is supplying this software for use with Cortex-M \n</div>
+<div class="line"> processor based microcontrollers. This file can be freely distributed \n</div>
+<div class="line"> within development tools that are supporting such Arm based processors. \n</div>
+<div class="line"> \n</div>
+<div class="line"> THIS SOFTWARE IS PROVIDED &quot;AS IS&quot;. NO WARRANTIES, WHETHER EXPRESS, IMPLIED \n</div>
+<div class="line"> OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF \n</div>
+<div class="line"> MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. \n</div>
+<div class="line"> ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR \n</div>
+<div class="line"> CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.</div>
+<div class="line"> &lt;/licenseText&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;headerSystemFilename&gt;system_ARMCM4&lt;/headeSystemFilename&gt;</div>
+<div class="line"> &lt;headerDefinitionsPrefix&gt;ARM_&lt;/headerDefinitionsPrefix&gt;</div>
+<div class="line"> &lt;addressUnitBits&gt;8&lt;/addressUnitBits&gt;</div>
+<div class="line"> &lt;width&gt;32&lt;/width&gt;</div>
+<div class="line"> &lt;size&gt;32&lt;/size&gt;</div>
+<div class="line"> &lt;access&gt;read-write&lt;/access&gt;</div>
+<div class="line"> &lt;resetValue&gt;0&lt;/resetValue&gt;</div>
+<div class="line"> &lt;resetMask&gt;0xffffffff&lt;/resetMask&gt;</div>
+<div class="line"> &lt;peripherals&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/peripherals&gt;</div>
+<div class="line">&lt;/device&gt;</div>
+</div><!-- fragment --><p>This example describes a device from the vendor <span class="XML-Token">ARM Ltd.</span> using <span class="XML-Token">ARM</span> as short name. The device belongs to the device family <span class="XML-Token">ARMCM4</span>. The device description is at version <span class="XML-Token">0.1</span> and uniquely identifies the device by the name <span class="XML-Token">ARM_Cortex_M4</span>. The legal disclaimer in the header files generated from this description is captured and formatted in accordance to the standard Arm CMSIS disclaimer. The CMSIS system file included by the generated device header file is named <span class="XML-Token">system_ARMCM4.h</span> and all type definitions will be prepended with <span class="XML-Token">ARM_</span>.</p>
+<p>The peripherals are memory mapped in a byte-addressable address space with a bus width of <span class="XML-Token">32</span> bits. The default size of the registers contained in the peripherals is set to <span class="XML-Token">32</span> bits. Unless redefined for specific peripherals, all registers or fields are <span class="XML-Token">read-write</span> accessible. A reset value of <span class="XML-Token">0</span>, valid for all <span class="XML-Token">32</span> bits as specified by the reset mask, is set for all registers unless redefined at a lower level.</p>
+<p><a class="anchor" id="elem_device_sc"></a><b>/device</b> </p>
+<table class="cmtable" summary="Device Level Schema">
+<tr>
+<th>Parent Level </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td>root </td><td colspan="3">None; Document root </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Use </th></tr>
+<tr>
+<td>xmlns:xs </td><td>Specify the underlying XML schema to which the CMSIS-SVD schema is compliant. Has to be set to: <span class="XML-Token">"http://www.w3.org/2001/XMLSchema-instance"</span>. </td><td>xs:decimal </td><td>required </td></tr>
+<tr>
+<td>xmlns:xs </td><td>Specify the file path and file name of the CMSIS-SVD Schema. For example, <span class="XML-Token">CMSIS-SVD.xsd</span>. </td><td>xs:string </td><td>required </td></tr>
+<tr>
+<td>schemaVersion </td><td>Specify the compliant CMSIS-SVD schema version (for example, <span class="XML-Token">1.1</span>). </td><td>xs:decimal </td><td>required </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>vendor </td><td>Specify the vendor of the device using the full name. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>vendorID </td><td>Specify the vendor abbreviation without spaces or special characters. This information is used to define the directory. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>name </td><td>The string identifies the device or device series. Device names are required to be unique. </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>series </td><td>Specify the name of the device series. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>version </td><td>Define the version of the SVD file. Silicon vendors maintain the description throughout the life-cycle of the device and ensure that all updated and released copies have a unique version string. Higher numbers indicate a more recent version. </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>description </td><td>Describe the main features of the device (for example CPU, clock frequency, peripheral overview). </td><td>xs:string </td><td>1..1 </td></tr>
+<tr>
+<td>licenseText </td><td>The text will be copied into the header section of the generated device header file and shall contain the legal disclaimer. New lines can be inserted by using <span class="XML-Token">\n</span>. This section is mandatory if the SVD file is used for generating the device header file. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_cpu.html">cpu</a> </td><td>Describe the processor included in the device. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>headerSystemFilename </td><td>Specify the file name (without extension) of the device-specific system include file (<code>system_&lt;device&gt;.h</code>; See CMSIS-Core description). The header file generator customizes the include statement referencing the CMSIS system file within the CMSIS device header file. By default, the filename is <code>system_<em>device-name</em>.h</code>. In cases where a device series shares a single system header file, the name of the series shall be used instead of the individual device name. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>headerDefinitionsPrefix </td><td>This string is prepended to all type definition names generated in the CMSIS-Core device header file. This is used if the vendor's software requires vendor-specific types in order to avoid name clashes with other definied types. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>addressUnitBits </td><td>Define the number of data bits uniquely selected by each address. The value for Cortex-M-based devices is <span class="XML-Token">8</span> (byte-addressable). </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>width </td><td>Define the number of data bit-width of the maximum single data transfer supported by the bus infrastructure. This information is relevant for debuggers when accessing registers, because it might be required to issue multiple accesses for resources of a bigger size. The expected value for Cortex-M-based devices is <span class="XML-Token">32</span>. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group2">
+<td>&#160; </td><td colspan="3" style="white-space:pre-wrap;">Refer to <a class="el" href="elem_special.html#registerPropertiesGroup_gr">registerPropertiesGroup</a> for details about the colored elements listed below. </td></tr>
+<tr class="group2">
+<td>size </td><td>Default bit-width of any register contained in the device. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>access </td><td>Default access rights for all registers. </td><td>accessType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>protection </td><td>Default access protection for all registers. </td><td>protectionStringType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetValue </td><td>Default value for all registers at RESET. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetMask </td><td>Define which register bits have a defined reset value. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html">peripherals</a> </td><td>Group to define peripherals. </td><td>&#160; </td><td>1..1 </td></tr>
+<tr>
+<td>vendorExtensions </td><td>The content and format of this section is unspecified. Silicon vendors may choose to provide additional information. By default, this section is ignored when constructing CMSIS files. It is up to the silicon vendor to specify a schema for this section. </td><td>xs:anyType (restriction) </td><td>0..1 </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/elem_peripherals.html b/docs/SVD/html/elem_peripherals.html
new file mode 100644
index 0000000..93f6093
--- /dev/null
+++ b/docs/SVD/html/elem_peripherals.html
@@ -0,0 +1,301 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/device/peripherals element</title>
+<title>CMSIS-SVD: /device/peripherals element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('elem_peripherals.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/device/peripherals element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>All peripherals of a device are enclosed within the tag <em>&lt;peripherals&gt;</em>.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;device&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;peripherals&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/peripherals&gt;</div>
+<div class="line">&lt;device&gt;</div>
+</div><!-- fragment --><p><a class="anchor" id="elem_peripherals_sc"></a> <b>/device/peripherals</b> </p>
+<table class="cmtable" summary="Peripherals Level">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_device.html">device</a> </td><td colspan="3"><a class="el" href="elem_device.html">/device element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> </td><td>Define the sequence of peripherals. </td><td>peripheralType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_peripheral"></a>
+/device/peripherals/peripheral element</h1>
+<p>At least one peripheral has to be defined.</p>
+<ul>
+<li>Each peripheral describes all registers belonging to that peripheral.</li>
+<li>The address range allocated by a peripheral is defined through one or more address blocks.</li>
+<li>An address block and register addresses are specified relative to the base address of a peripheral. The address block information can be used for constructing a memory map for the device peripherals.</li>
+</ul>
+<p>Starting version 1.3 of the SVD specification, arrays of peripherals can be specified. The single peripheral description gets duplicated automatically into an array. The number of array elements is specified by the <em>&lt;dim&gt;</em> element. To define arrays, the <em>&lt;name&gt;</em> needs the format <em>myPeripheral[%s]</em>. The tag <em>&lt;dimIncrement&gt;</em> specifies the address offset between two peripherals. To create copies of a peripheral using different names, you must use the <em>derivedFrom</em> attribute.</p>
+<dl class="section remark"><dt>Remarks</dt><dd>The memory map does not contain any information about physical memory. The memory of a device is described as part of the CMSIS-Pack device description.</dd></dl>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;peripherals&gt;</div>
+<div class="line"> &lt;peripheral&gt;</div>
+<div class="line"> &lt;name&gt;Timer1&lt;/name&gt;</div>
+<div class="line"> &lt;version&gt;1.0&lt;/version&gt;</div>
+<div class="line"> &lt;description&gt;Timer 1 is a standard timer ... &lt;/description&gt;</div>
+<div class="line"> &lt;baseAddress&gt;0x40002000&lt;/baseAddress&gt;</div>
+<div class="line"> &lt;addressBlock&gt;</div>
+<div class="line"> &lt;offset&gt;0x0&lt;/offset&gt;</div>
+<div class="line"> &lt;size&gt;0x400&lt;/size&gt;</div>
+<div class="line"> &lt;usage&gt;registers&lt;/usage&gt;</div>
+<div class="line"> &lt;protection&gt;s&lt;/protection&gt;</div>
+<div class="line"> &lt;/addressBlock&gt;</div>
+<div class="line"> &lt;interrupt&gt;&lt;name&gt;TIM0_INT&lt;/name&gt;&lt;value&gt;34&lt;/value&gt;&lt;/interrupt&gt;</div>
+<div class="line"> &lt;registers&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/registers&gt;</div>
+<div class="line"> &lt;/peripheral&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;peripheral&gt;</div>
+<div class="line"> &lt;name&gt;Timer1_Alt&lt;/name&gt;</div>
+<div class="line"> &lt;version&gt;1.0&lt;/version&gt;</div>
+<div class="line"> &lt;description&gt;Alternate Timer 1 is a special timer execution mode ... &lt;/description&gt;</div>
+<div class="line"> &lt;baseAddress&gt;0x40002000&lt;/baseAddress&gt;</div>
+<div class="line"> &lt;alternatePeripheral&gt;Timer1&lt;/alternatePeripheral&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/peripheral&gt;</div>
+<div class="line">&lt;/peripherals&gt;</div>
+</div><!-- fragment --><p>Two timer peripheral descriptions are specified for the same memory block. No redefined addresses will be reported for both peripherals.</p>
+<p><a class="anchor" id="elem_peripheral_sc"></a><b>/device/peripherals/peripheral</b> </p>
+<table class="cmtable" summary="Peripheral Level Schema">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html">peripherals</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html">/device/peripherals element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Attributes </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>derivedFrom </td><td>Specify the peripheral name from which to inherit data. Elements specified subsequently override inherited values. </td><td>dimableIdentifierType </td><td>0..1 </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr class="group1">
+<td>&#160; </td><td colspan="3">Refer to <a class="el" href="elem_special.html#dimElementGroup_gr">dimElementGroup</a> for details about the colored elements. </td></tr>
+<tr class="group1">
+<td>dim </td><td>Define the number of elements in an array. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group1">
+<td>dimIncrement </td><td>Specify the address increment, in <span class="XML-Token">Bytes</span>, between two neighboring array members in the address map. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group1">
+<td>dimIndex </td><td>Do not define on peripheral level. By default, <em>&lt;dimIndex&gt;</em> is an integer value starting at <span class="XML-Token">0</span>. </td><td>dimIndexType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td>dimName </td><td>Specify the name of the C-type structure. If not defined, then the entry of the <em>&lt;name&gt;</em> element is used. </td><td>idnetifierType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td><a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> </td><td>Grouping element to create enumerations in the header file. </td><td>dimArrayIndexType </td><td>0..1 </td></tr>
+<tr>
+<td>name </td><td>The string identifies the peripheral. Peripheral names are required to be unique for a device. The name needs to be an ANSI C identifier to generate the header file. You can use the placeholder <em>[%s]</em> to create arrays. </td><td>dimableIdentifierType </td><td>1..1 </td></tr>
+<tr>
+<td>version </td><td>The string specifies the version of this peripheral description. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>description </td><td>The string provides an overview of the purpose and functionality of the peripheral. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>alternatePeripheral </td><td>All address blocks in the memory space of a device are assigned to a unique peripheral by default. If multiple peripherals describe the same address blocks, then this needs to be specified explicitly. A peripheral redefining an address block needs to specify the name of the peripheral that is listed first in the description. </td><td>dimaleIdentifierType </td><td>0..1 </td></tr>
+<tr>
+<td>groupName </td><td>Define a name under which the System Viewer is showing this peripheral. </td><td>xs:Name </td><td>0..1 </td></tr>
+<tr>
+<td>prependToName </td><td>Define a string as prefix. All register names of this peripheral get this prefix. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td>appendToName </td><td>Define a string as suffix. All register names of this peripheral get this suffix. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td>headerStructName </td><td>Specify the base name of C structures. The headerfile generator uses the name of a peripheral as the base name for the C structure type. If <em>&lt;headerStructName&gt;</em> element is specfied, then this string is used instead of the peripheral name; useful when multiple peripherals get derived and a generic type name should be used. </td><td>dimableIdentifierType </td><td>0..1 </td></tr>
+<tr>
+<td>disableCondition </td><td>Define a C-language compliant logical expression returning a TRUE or FALSE result. If TRUE, refreshing the display for this peripheral is disabled and related accesses by the debugger are suppressed. <br/>
+ <br/>
+ Only constants and references to other registers contained in the description are allowed: <em>&lt;peripheral&gt;</em>-&gt;<em>&lt;register&gt;</em>-&gt;<em>&lt;field&gt;</em>, for example, (System-&gt;ClockControl-&gt;apbEnable == 0). The following operators are allowed in the expression [&amp;&amp;,||, ==, !=, &gt;&gt;, &lt;&lt;, &amp;, |]. <dl class="section attention"><dt>Attention</dt><dd>Use this feature only in cases where accesses from the debugger to registers of un-clocked peripherals result in severe debugging failures. SVD is intended to provide static information and does not include any run-time computation or functions. Such capabilities can be added by the tools, and is beyond the scope of this description language. </dd></dl>
+</td><td>stringType </td><td>0..1 </td></tr>
+<tr>
+<td>baseAddress </td><td>Lowest address reserved or used by the peripheral. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group2">
+<td>&#160; </td><td colspan="3" style="white-space:pre-wrap;">Refer to <a class="el" href="elem_special.html#registerPropertiesGroup_gr">registerPropertiesGroup</a> for details about the colored elements. </td></tr>
+<tr class="group2">
+<td>size </td><td>Define the default bit-width of any register contained in the device (implicit inheritance). </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>access </td><td>Define default access rights for all registers. </td><td>accessType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>protection </td><td>Define default protection rights for all registers. </td><td>protectionStringType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetValue </td><td>Define the default value for all registers at RESET. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetMask </td><td>Identify which register bits have a defined reset value. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_addressBlock">addressBlock</a> </td><td>Specify an address range uniquely mapped to this peripheral. A peripheral must have at least one address block, but can allocate multiple distinct address ranges. If a peripheral is derived from another peripheral, the addressBlock is not mandatory. </td><td>addressBlockType </td><td>0/1..* </td></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_interrupt">interrupt</a> </td><td>A peripheral can have multiple associated interrupts. This entry allows the debugger to show interrupt names instead of interrupt numbers. </td><td>interruptType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html">registers</a> </td><td>Group to enclose register definitions. </td><td>registersType </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_addressBlock"></a>
+/device/peripherals/peripheral/addressBlock element</h1>
+<p>Specify an address range uniquely mapped to this peripheral. A peripheral must have at least one address block. If a peripheral is derived form another peripheral, the <em>&lt;addressBlock&gt;</em> is not mandatory.</p>
+<p><b>/device/peripherals/peripheral/addressBlock</b> </p>
+<table class="cmtable" summary="addressBlock Type Table">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html#elem_peripheral">/device/peripherals/peripheral element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>offset </td><td>Specifies the start address of an address block relative to the peripheral <em>baseAddress</em>. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>size </td><td>Specifies the number of addressUnitBits being covered by this address block. The end address of an address block results from the sum of baseAddress, offset, and (size - 1). </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>usage </td><td>The following predefined values can be used:<ul>
+<li><span class="XML-Token">registers</span></li>
+<li><span class="XML-Token">buffer</span></li>
+<li><span class="XML-Token">reserved</span>. </li>
+</ul>
+</td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_special.html#elem_protection">protection</a> </td><td>Set the protection level for an address block. </td><td>protectionStringType </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_interrupt"></a>
+/device/peripherals/peripheral/interrupt element</h1>
+<p>A peripheral can have multiple interrupts. This entry allows the debugger to show interrupt names instead of interrupt numbers.</p>
+<p><a class="anchor" id="elem_interrupt_sc"></a><b>/device/peripherals/peripheral/interrupt</b> </p>
+<table class="cmtable" summary="interrupt Type Table">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html#elem_peripheral">/device/peripherals/peripheral element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>name </td><td>The string represents the interrupt name. </td><td>stringType </td><td>1..1 </td></tr>
+<tr>
+<td>description </td><td>The string describes the interrupt. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>value </td><td>Represents the enumeration index value associated to the interrupt. </td><td>xs:integer </td><td>1..1 </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/elem_registers.html b/docs/SVD/html/elem_registers.html
new file mode 100644
index 0000000..6139185
--- /dev/null
+++ b/docs/SVD/html/elem_registers.html
@@ -0,0 +1,672 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>/device/peripherals/peripheral/registers element</title>
+<title>CMSIS-SVD: /device/peripherals/peripheral/registers element</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('elem_registers.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">/device/peripherals/peripheral/registers element </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>All registers of a peripheral are enclosed between the <em>&lt;registers&gt;</em> opening and closing tags. Clusters define a set of registers. You can either use the <em>&lt;cluster&gt;</em> or the <em>&lt;register&gt;</em> element.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;peripheral&gt;</div>
+<div class="line"> &lt;registers&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/registers&gt;</div>
+<div class="line">&lt;/peripheral&gt;</div>
+<div class="line">...</div>
+</div><!-- fragment --><p><a class="anchor" id="elem_registers_sc"></a> <b>/device/peripherals/peripheral/registers</b> </p>
+<table class="cmtable" summary="Registers Type Table">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html#elem_peripheral">/device/peripherals/peripheral element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr class="choice">
+<td><a class="el" href="elem_registers.html#elem_cluster">cluster</a> </td><td>Define the sequence of register clusters. </td><td>clusterType </td><td>0..* </td></tr>
+<tr class="choice">
+<td><a class="el" href="elem_registers.html#elem_register">register</a> </td><td>Define the sequence of registers. </td><td>registerType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_cluster"></a>
+/device/pripherals/peripheral/registers/.../cluster element</h1>
+<p><b>Cluster</b> describes a sequence of neighboring registers within a peripheral. A <em>&lt;cluster&gt;</em> specifies the <em>addressOffset</em> relative to the <em>baseAddress</em> of the grouping element. All <em>&lt;register&gt;</em> elements within a <em>&lt;cluster&gt;</em> specify their <em>addressOffset</em> relative to the cluster base address (<em>&lt;peripheral.baseAddress&gt;</em> + <em>&lt;cluster.addressOffset&gt;</em>).</p>
+<p>Multiple <em>&lt;register&gt;</em> and <em>&lt;cluster&gt;</em> sections may occur in any order. Since version 1.3 of the specification, the nesting of <em>&lt;cluster&gt;</em> elements is supported. Nested clusters express hierarchical structures of registers. It is predominantely targeted at the generation of device header files to create a C-data structure within the peripheral structure instead of a flat list of registers. Note, you can also specify an array of a cluster using the <em>&lt;dim&gt;</em> element.</p>
+<p><a class="anchor" id="elem_cluster_sc"></a><b>/device/pripherals/peripheral/registers/.../cluster</b> </p>
+<table class="cmtable" summary="Cluster Level Schema">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html">registers</a> </td><td colspan="3"><a class="el" href="elem_registers.html">/device/peripherals/peripheral/registers element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_cluster">cluster</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_cluster">/device/pripherals/peripheral/registers/.../cluster element</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><p class="starttd">derivedFrom</p>
+<p class="endtd"></p>
+</td><td>Specify the cluster name from which to inherit data. Elements specified subsequently override inherited values. <br/>
+<b>Usage:</b><ul>
+<li>Always use the full qualifying path, which must start with the peripheral <em>&lt;name&gt;</em>, when deriving from another scope. (for example, in periperhal <span class="XML-Token">B</span>, derive from <span class="XML-Token">peripheralA.clusterX</span>).</li>
+<li>You can use the cluster <em>&lt;name&gt;</em> when both clusters are in the same scope.</li>
+<li>No relative paths will work. <br/>
+<b>Remarks:</b> When deriving a cluster, it is mandatory to specify at least the <em>&lt;name&gt;</em>, the <em>&lt;description&gt;</em>, and the <em>&lt;addressOffset&gt;</em>. </li>
+</ul>
+</td><td>registerType </td><td>0..1 </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr class="group1">
+<td>&#160; </td><td colspan="3">Refer to <a class="el" href="elem_special.html#dimElementGroup_gr">dimElementGroup</a> for details. </td></tr>
+<tr class="group1">
+<td>dim </td><td>Define the number of elements in an array of clusters. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group1">
+<td>dimIncrement </td><td>Specify the address increment, in <span class="XML-Token">Bytes</span>, between two neighboring clusters of the cluster array. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group1">
+<td>dimIndex </td><td>Specify the strings that substitute the placeholder <em>[%s]</em> within the cluster <em>&lt;name&gt;</em>. Use the placeholder <em>%s</em> in <em>&lt;name&gt;</em> when <em>&lt;dimIndex&gt;</em> is specified. </td><td>dimIndexType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td>dimName </td><td>Specify the name of the C-type structure. If not defined, then the entry of the <em>&lt;name&gt;</em> element is used. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td><a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> </td><td>Grouping element to create enumerations in the header file. </td><td>dimArrayIndexType </td><td>0..1 </td></tr>
+<tr>
+<td>name </td><td>String to identify the cluster. Cluster names are required to be unique within the scope of a peripheral. A list of cluster names can be build using the placeholder <em>%s</em>. Use the placeholder <em>[%s]</em> at the end of the identifier to generate arrays in the header file. The placeholder <em>[%s]</em> cannot be used together with <em>&lt;dimIndex&gt;</em>. </td><td>dimableIdentifierType </td><td>1..1 </td></tr>
+<tr>
+<td>description </td><td>String describing the details of the register cluster. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>alternateCluster </td><td>Specify the name of the original cluster if this cluster provides an alternative description. </td><td>dimableIdentifierType </td><td>0..1 </td></tr>
+<tr>
+<td>headerStructName </td><td>Specify the struct type name created in the device header file. If not specified, then the name of the cluster is used. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td>addressOffset </td><td>Cluster address relative to the <em>&lt;baseAddress&gt;</em> of the peripheral. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group2">
+<td>&#160; </td><td colspan="3">Refer to <a class="el" href="elem_special.html#registerPropertiesGroup_gr">registerPropertiesGroup</a> for details. </td></tr>
+<tr class="group2">
+<td>size </td><td>Define the default bit-width of any device register (implicit inheritance). </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>access </td><td>Define access rights. </td><td>accessType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>protection </td><td>Specify the security privilege to access an address region. </td><td>protectionStringType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetValue </td><td>Define the default value for all registers at RESET. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetMask </td><td>Identify register bits that have a defined reset value. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_register">register</a> </td><td>Define a sequence of register within a cluster. </td><td>registerType </td><td>0..* </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_cluster">cluster</a> </td><td>Element to nest cluster definitions. </td><td>clusterType </td><td>0..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_register"></a>
+/device/peripherals/peripheral/registers/.../register element</h1>
+<p>The description of registers is the most essential part of SVD. If the elements <em>&lt;size&gt;</em>, <em>&lt;access&gt;</em>, <em>&lt;resetValue&gt;</em>, and <em>&lt;resetMask&gt;</em> have not been specified on a higher level, then these elements are mandatory on register level.</p>
+<p>A register can represent a single value or can be subdivided into individual bit-fields of specific functionality and semantics. From a schema perspective, the element <em>&lt;fields&gt;</em> is optional, however, from a specification perspective, <em>&lt;fields&gt;</em> are mandatory when they are described in the device documentation.</p>
+<p>You can define register arrays where the single description gets duplicated automatically. The size of the array is specified by the <em>&lt;dim&gt;</em> element. Register names get composed by the element <em>&lt;name&gt;</em> and the index-specific string defined in <em>&lt;dimIndex&gt;</em>. The element <em>&lt;dimIncrement&gt;</em> specifies the address offset between two registers.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> &lt;name&gt;TimerCtrl0&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;Timer Control Register&lt;/description&gt;</div>
+<div class="line"> &lt;addressOffset&gt;0x0&lt;/addressOffset&gt;</div>
+<div class="line"> &lt;access&gt;read-write&lt;/access&gt;</div>
+<div class="line"> &lt;resetValue&gt;0x00008001&lt;/resetValue&gt;</div>
+<div class="line"> &lt;resetMask&gt;0x0000ffff&lt;/resetMask&gt;</div>
+<div class="line"> &lt;size&gt;32&lt;/size&gt;</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+<div class="line"></div>
+<div class="line">&lt;<span class="keyword">register</span> derivedFrom=<span class="stringliteral">&quot;TimerCtrl0&quot;</span>&gt;</div>
+<div class="line"> &lt;name&gt;TimerCtrl1&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;Derived Timer&lt;/description&gt;</div>
+<div class="line"> &lt;addressOffset&gt;0x4&lt;/addressOffset&gt;</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+<div class="line">...</div>
+</div><!-- fragment --><p>This example describes two registers, <b>TimerCtrl0</b> and <b>TimerCtrl1</b>. The values defined for <b>TimerCtrl0</b> are inherited by the derived register <b>TimerCtrl1</b>, except for the value in <em>&lt;addressOffset&gt;</em>.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> &lt;name&gt;TIM_MODEA&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;In mode A <span class="keyword">this</span> <span class="keyword">register</span> acts as a reload value&lt;/description&gt;</div>
+<div class="line"> &lt;addressOffset&gt;0xC&lt;/addressOffset&gt;</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+<div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> &lt;name&gt;TIM_MODEB&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;In mode B <span class="keyword">this</span> <span class="keyword">register</span> acts as the compare value&lt;/description&gt;</div>
+<div class="line"> &lt;alternateRegister&gt;TIM_MODEA&lt;/alternateRegister&gt;</div>
+<div class="line"> &lt;addressOffset&gt;0xC&lt;/addressOffset&gt;</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+<div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> &lt;name&gt;DMA_DATA&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;This <span class="keyword">register</span> contains the address of the data being transferred&lt;/description&gt;</div>
+<div class="line"> &lt;dataType&gt;uint32_t *&lt;/dataType&gt;</div>
+<div class="line"> &lt;addressOffset&gt;0xf0&lt;/addressOffset&gt;</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+<div class="line">...</div>
+</div><!-- fragment --><p>This example describes two registers, <b>TIM_MODEA</b> and <b>TIM_MODEB</b>. Both have the same address offset. Based on the configured operation model being A or B, the register acts as reload or compare value. The register DMA_DATA is specified as a pointer to unsigned word data. The code generated for the device header file is:</p>
+<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> <span class="keyword">union </span>{</div>
+<div class="line"> __IO uint32_t TIM_MODEA;</div>
+<div class="line"> __IO uint32_t TIM_MODEB;</div>
+<div class="line"> };</div>
+<div class="line"> __IO uint32_t * DMA_DATA; </div>
+<div class="line"> ...</div>
+<div class="line">} &lt;peripheral:name&gt;_Type;</div>
+</div><!-- fragment --><p><a class="anchor" id="elem_register_sc"></a> <b>/device/peripherals/peripheral/registers/.../register</b> </p>
+<table class="cmtable" summary="Register Level Schema">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_cluster">cluster</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_cluster">/device/pripherals/peripheral/registers/.../cluster element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html">registers</a> </td><td colspan="3"><a class="el" href="elem_registers.html">/device/peripherals/peripheral/registers element</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><p class="starttd">derivedFrom</p>
+<p class="endtd"></p>
+</td><td>Specify the register name from which to inherit data. Elements specified subsequently override inherited values. <br/>
+<b>Usage:</b><ul>
+<li>Always use the full qualifying path, which must start with the peripheral <em>&lt;name&gt;</em>, when deriving from another scope. (for example, in periperhal <span class="XML-Token">B</span>, derive from <span class="XML-Token">peripheralA.registerX</span>.</li>
+<li>You can use the register <em>&lt;name&gt;</em> only when both registers are in the same scope.</li>
+<li>No relative paths will work. <br/>
+<b>Remarks:</b> When deriving, it is mandatory to specify at least the <em>&lt;name&gt;</em>, the <em>&lt;description&gt;</em>, and the <em>&lt;addressOffset&gt;</em>. </li>
+</ul>
+</td><td>xs:Name </td><td>0..1 </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr class="group1">
+<td>&#160; </td><td colspan="3">Refer to <a class="el" href="elem_special.html#dimElementGroup_gr">dimElementGroup</a> for details. </td></tr>
+<tr class="group1">
+<td>dim </td><td>Define the number of elements in an array of registers. If <em>&lt;dimIncrement&gt;</em> is specified, this element becomes mandatory. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group1">
+<td>dimIncrement </td><td>Specify the address increment, in <span class="XML-Token">Bytes</span>, between two neighboring registers. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group1">
+<td>dimIndex </td><td>Specify the substrings that replaces the <em>%s</em> placeholder within <em>name</em> and <em>displayName</em>. By default, the index is a decimal value starting with 0 for the first register. <em>dimIndex</em> should not be used together with the placeholder <em>[%s]</em>, but rather with <em>%s</em>. </td><td>dimIndexType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td>dimName </td><td>Specify the name of the C-type structure. If not defined, then the entry of the <em>&lt;name&gt;</em> element is used. </td><td>identifyerType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td><a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> </td><td>Grouping element to create enumerations in the header file. </td><td>dimArrayIndexType </td><td>0..1 </td></tr>
+<tr>
+<td>name </td><td>String to identify the register. Register names are required to be unique within the scope of a peripheral. You can use the placeholder <em>%s</em>, which is replaced by the <em>dimIndex</em> substring. Use the placeholder <em>[%s]</em> only at the end of the identifier to generate arrays in the header file. The placeholder <em>[%s]</em> cannot be used together with <em>dimIndex</em>. </td><td>registerNameType </td><td>1..1 </td></tr>
+<tr>
+<td>displayName </td><td>When specified, then this string can be used by a graphical frontend to visualize the register. Otherwise the <em>name</em> element is displayed. <em>displayName</em> may contain special characters and white spaces. You can use the placeholder <em>%s</em>, which is replaced by the <em>dimIndex</em> substring. Use the placeholder <em>[%s]</em> only at the end of the identifier. The placeholder <em>[%s]</em> cannot be used together with <em>dimIndex</em>. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>description </td><td>String describing the details of the register. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr>
+<td>alternateGroup </td><td>Specifies a group name associated with all alternate register that have the same name. At the same time, it indicates that there is a register definition allocating the same absolute address in the address space. </td><td>xs:Name </td><td>0..1 </td></tr>
+<tr>
+<td>alternateRegister </td><td>This tag can reference a register that has been defined above to current location in the description and that describes the memory location already. This tells the SVDConv's address checker that the redefinition of this particular register is intentional. The register name needs to be unique within the scope of the current peripheral. A register description is defined either for a unique address location or could be a redefinition of an already described address. In the latter case, the register can be either marked <em>alternateRegister</em> and needs to have a unique name, or it can have the same register name but is assigned to a register subgroup through the tag <em>alternateGroup</em> (specified in version 1.0). </td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td>addressOffset </td><td>Define the address offset relative to the enclosing element. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group2">
+<td>&#160; </td><td colspan="3" style="white-space:pre-wrap;">Refer to <a class="el" href="elem_special.html#registerPropertiesGroup_gr">registerPropertiesGroup</a> for details about the colored elements. </td></tr>
+<tr class="group2">
+<td>size </td><td>Defines the default bit-width of any register contained in the device (implicit inheritance). </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>access </td><td>Defines the default access rights for all registers. </td><td>accessType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>protection </td><td>Defines the protection rights for all registers. </td><td>protectionStringType </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetValue </td><td>Defines the default value for all registers at RESET. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="group2">
+<td>resetMask </td><td>Identifies which register bits have a defined reset value. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td>dataType </td><td>It can be useful to assign a specific native C datatype to a register. This helps avoiding type casts. For example, if a 32 bit register shall act as a pointer to a 32 bit unsigned data item, then <em>dataType</em> can be set to "uint32_t *". The following simple data types are predefined:<ul>
+<li><span class="XML-Token">uint8_t</span>: unsigned byte</li>
+<li><span class="XML-Token">uint16_t</span>: unsigned half word</li>
+<li><span class="XML-Token">uint32_t</span>: unsigned word</li>
+<li><span class="XML-Token">uint64_t</span>: unsigned double word</li>
+<li><span class="XML-Token">int8_t</span>: signed byte</li>
+<li><span class="XML-Token">int16_t</span>: signed half word</li>
+<li><span class="XML-Token">int32_t</span>: signed world</li>
+<li><span class="XML-Token">int64_t</span>: signed double word</li>
+<li><span class="XML-Token">uint8_t *</span>: pointer to unsigned byte</li>
+<li><span class="XML-Token">uint16_t *</span>: pointer to unsigned half word</li>
+<li><span class="XML-Token">uint32_t *</span>: pointer to unsigned word</li>
+<li><span class="XML-Token">uint64_t *</span>: pointer to unsigned double word</li>
+<li><span class="XML-Token">int8_t *</span>: pointer to signed byte</li>
+<li><span class="XML-Token">int16_t *</span>: pointer to signed half word</li>
+<li><span class="XML-Token">int32_t *</span>: pointer to signed world</li>
+<li><span class="XML-Token">int64_t *</span>: pointer to signed double word </li>
+</ul>
+</td><td>dataTypeType </td><td>0..1 </td></tr>
+<tr>
+<td>modifiedWriteValues </td><td>Element to describe the manipulation of data written to a register. If not specified, the value written to the field is the value stored in the field. The other options define bitwise operations: <ul>
+<li><span class="XML-Token">oneToClear</span>: write data bits of one shall clear (set to zero) the corresponding bit in the register. </li>
+<li><span class="XML-Token">oneToSet</span>: write data bits of one shall set (set to one) the corresponding bit in the register. </li>
+<li><span class="XML-Token">oneToToggle</span>: write data bits of one shall toggle (invert) the corresponding bit in the register. </li>
+<li><span class="XML-Token">zeroToClear</span>: write data bits of zero shall clear (set to zero) the corresponding bit in the register. </li>
+<li><span class="XML-Token">zeroToSet</span>: write data bits of zero shall set (set to one) the corresponding bit in the register. </li>
+<li><span class="XML-Token">zeroToToggle</span>: write data bits of zero shall toggle (invert) the corresponding bit in the register. </li>
+<li><span class="XML-Token">clear</span>: after a write operation all bits in the field are cleared (set to zero). </li>
+<li><span class="XML-Token">set</span>: after a write operation all bits in the field are set (set to one). </li>
+<li><span class="XML-Token">modify</span>: after a write operation all bit in the field may be modified (default). </li>
+</ul>
+</td><td>modifiedWriteValuesType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_writeConstraint">writeConstraint</a> </td><td>Three mutually exclusive options exist to set write-constraints. </td><td>writeConstraintType </td><td>0..1 </td></tr>
+<tr>
+<td>readAction </td><td>If set, it specifies the side effect following a read operation. If not set, the register is not modified. The defined side effects are: <ul>
+<li><span class="XML-Token">clear</span>: The register is cleared (set to zero) following a read operation. </li>
+<li><span class="XML-Token">set</span>: The register is set (set to ones) following a read operation. </li>
+<li><span class="XML-Token">modify</span>: The register is modified in some way after a read operation. </li>
+<li><span class="XML-Token">modifyExternal</span>: One or more dependent resources other than the current register are immediately affected by a read operation (it is recommended that the register description specifies these dependencies).</li>
+</ul>
+Debuggers are not expected to read this register location unless explicitly instructed by the user. </td><td>readActionType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_fields">fields</a> </td><td>In case a register is subdivided into bit fields, it should be reflected in the SVD description file to create bit-access macros and bit-field structures in the header file. </td><td>fieldsType </td><td>0..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_writeConstraint"></a>
+/device/peripherals/peripheral/registers/.../register/.../writeConstraint element</h1>
+<p>Define constraints for writing values to a field. You can choose between three options, which are mutualy exclusive.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;writeConstraint&gt;</div>
+<div class="line"> &lt;useEnumeratedValues&gt;<span class="keyword">true</span>&lt;/useEnumeratedValues&gt;</div>
+<div class="line"> &lt;/writeConstraint&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> &lt;name&gt;F_ONE&lt;/name&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;writeConstraint&gt;</div>
+<div class="line"> &lt;range&gt;</div>
+<div class="line"> &lt;minimum&gt;2&lt;/minimum&gt;</div>
+<div class="line"> &lt;maximum&gt;4&lt;/maximum&gt;</div>
+<div class="line"> &lt;/range&gt;</div>
+<div class="line"> &lt;/writeConstraint&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> &lt;name&gt;F_TWO&lt;/name&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;writeConstraint&gt;</div>
+<div class="line"> &lt;writeAsRead&gt;<span class="keyword">true</span>&lt;/writeAsRead&gt;</div>
+<div class="line"> &lt;/writeConstraint&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> &lt;name&gt;F_N&lt;/name&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> ... </div>
+<div class="line">&lt;<span class="keyword">register</span>&gt; </div>
+</div><!-- fragment --><p>The example shows write constraints defined on different levels. The write constrains on <em>&lt;register&gt;</em> level are propagated as default to all subsequent fields, especially to field <b>F_N</b>. Field <b>F_ONE</b> overwrites the default and sets the write range between <span class="XML-Token">2..4</span>. Other values cannot be written to this field. Field <b>F_TWO</b> overwrites the default and allows to write only the last read value.</p>
+<p><a class="anchor" id="elem_writeConstraint_sc"></a><b>/device/peripherals/peripheral/registers/.../register/.../writeConstraint</b> </p>
+<table class="cmtable" summary="Write Constraints table">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_register">register</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_register">/device/peripherals/peripheral/registers/.../register element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_field">field</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_field">/device/peripherals/peripheral/registers/.../fields/field element</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr class="choice">
+<td>writeAsRead </td><td>If <span class="XML-Token">true</span>, only the last read value can be written. </td><td>xs:boolean </td><td>0..1 </td></tr>
+<tr class="choice">
+<td>useEnumeratedValues </td><td>If <span class="XML-Token">true</span>, only the values listed in the <a class="el" href="elem_registers.html#elem_enumeratedValues">enumeratedValues</a> list can be written. </td><td>xs:boolean </td><td>0..1 </td></tr>
+<tr class="choice">
+<td>range </td><td>Contains the following two elements: </td><td>&#160; </td><td>0..1 </td></tr>
+<tr class="choice">
+<td align="right">minimum </td><td>Specify the smallest number to be written to the field. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="choice">
+<td align="right">maximum </td><td>Specify the largest number to be written to the field. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_fields"></a>
+/device/peripherals/peripheral/registers/.../register/fields element</h1>
+<p>Grouping element to define bit-field properties of a register.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;fields&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> &lt;name&gt;TimerCtrl0_IntSel&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;Select interrupt line that is triggered by timer overflow.&lt;/description&gt;</div>
+<div class="line"> &lt;bitOffset&gt;1&lt;/bitOffset&gt;</div>
+<div class="line"> &lt;bitWidth&gt;3&lt;/bitWidth&gt;</div>
+<div class="line"> &lt;access&gt;read-write&lt;/access&gt;</div>
+<div class="line"> &lt;resetValue&gt;0x0&lt;/resetValue&gt;</div>
+<div class="line"> &lt;modifiedWriteValues&gt;oneToSet&lt;/modifiedWriteValues&gt;</div>
+<div class="line"> &lt;writeConstraint&gt;</div>
+<div class="line"> &lt;range&gt;</div>
+<div class="line"> &lt;minimum&gt;0&lt;/minimum&gt;</div>
+<div class="line"> &lt;maximum&gt;5&lt;/maximum&gt;</div>
+<div class="line"> &lt;/range&gt;</div>
+<div class="line"> &lt;/writeConstraint&gt;</div>
+<div class="line"> &lt;readAction&gt;clear&lt;/readAction&gt;</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;field&gt;</div>
+<div class="line"> &lt;name&gt;BIT1&lt;/name&gt; </div>
+<div class="line"> &lt;description&gt;test&lt;/description&gt;</div>
+<div class="line"> &lt;bitRange&gt;[7:0]&lt;/bitRange&gt; </div>
+<div class="line"> &lt;access&gt;read-write&lt;/access&gt;</div>
+<div class="line"> &lt;/field&gt;</div>
+<div class="line"> ... </div>
+<div class="line">&lt;/fields&gt;</div>
+<div class="line">...</div>
+</div><!-- fragment --><p>The example creates two bit-files <b>TimerCtrl0_IntSel</b> and <b>BIT1</b>. The bit-field <b>TimerCtrl0_IntSel</b> has an bit offset of <span class="XML-Token">1</span> and a depth of <span class="XML-Token">3</span> bits, with unrestricted read and write access, a reset value of <span class="XML-Token">0</span> and a write constraint of <span class="XML-Token">oneToSet</span>, which means that only the written bit is changed. The value allowed to be written to the field range between <span class="XML-Token">0-5</span>. After a read operation, all bits are set to <span class="XML-Token">zero</span>.</p>
+<p>The bit-field <b>BIT1</b>, described as a test field, has the size of <span class="XML-Token">8</span> bits and can be unlimited read and written.</p>
+<p><a class="anchor" id="elem_fields_sc"></a> <b>/device/peripherals/peripheral/registers/.../register/fields</b> </p>
+<table class="cmtable" summary="Fields Level Schema">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_register">register</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_register">/device/peripherals/peripheral/registers/.../register element</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_field">field</a> </td><td>Define the bit-field properties of a register. </td><td>fieldType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_field"></a>
+/device/peripherals/peripheral/registers/.../fields/field element</h1>
+<p>All fields of a register are enclosed between the <em>&lt;fields&gt;</em> opening and closing tags.</p>
+<p>A bit-field has a name that is unique within the register. The position and size within the register can be decsribed in two ways:</p>
+<ul>
+<li>by the combination of the least significant bit's position (lsb) and the most significant bit's position (msb), or</li>
+<li>the lsb and the bit-width of the field.</li>
+</ul>
+<p>A field may define an <em>enumeratedValue</em> in order to make the display more intuitive to read.</p>
+<p><a class="anchor" id="elem_field_sc"></a> <b>/device/peripherals/peripheral/registers/.../fields/field</b> </p>
+<table class="cmtable" summary="Field Level Schema">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_fields">fields</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_fields">/device/peripherals/peripheral/registers/.../register/fields element</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>derivedFrom </td><td>Specify the field name from which to inherit data. Elements specified subsequently override inherited values. <br/>
+<b>Usage:</b><ul>
+<li>Always use the full qualifying path, which must start with the peripheral <em>&lt;name&gt;</em>, when deriving from another scope. (for example, in periperhal <span class="XML-Token">A</span> and <span class="XML-Token">registerX</span>, derive from <span class="XML-Token">peripheralA.registerYY.fieldYY</span>.</li>
+<li>You can use the field <em>&lt;name&gt;</em> only when both fields are in the same scope.</li>
+<li>No relative paths will work. <br/>
+<b>Remarks:</b> When deriving, it is mandatory to specify at least the <em>&lt;name&gt;</em> and <em>&lt;description&gt;</em>. </li>
+</ul>
+</td><td>xs:Name </td><td>0..1 </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr class="group1">
+<td>&#160; </td><td colspan="3">Refer to <a class="el" href="elem_special.html#dimElementGroup_gr">dimElementGroup</a> for details. </td></tr>
+<tr class="group1">
+<td>dim </td><td>Defines the number of elements in a list. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group1">
+<td>dimIncrement </td><td>Specify the address increment, in <span class="XML-Token">bits</span>, between two neighboring list members in the address map. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="group1">
+<td>dimIndex </td><td>Specify the strings that substitue the placeholder <em>%s</em> within <em>&lt;name&gt;</em> and <em>&lt;displayName&gt;</em>. </td><td>dimIndexType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td>dimName </td><td>Specify the name of the C-type structure. If not defined, then the entry in the <em>&lt;name&gt;</em> element is used. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr class="group1">
+<td><a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> </td><td>Grouping element to create enumerations in the header file. </td><td>dimArrayIndexType </td><td>0..1 </td></tr>
+<tr>
+<td>name </td><td>Name string used to identify the field. Field names must be unique within a register. </td><td>dimableIdentifierType </td><td>1..1 </td></tr>
+<tr>
+<td>description </td><td>String describing the details of the register. </td><td>stringType </td><td>0..1 </td></tr>
+<tr class="choice">
+<td><em>Choice of</em> </td><td colspan="2">Three mutually exclusive options exist to describe the bit-range: </td><td>1..1 </td></tr>
+<tr class="choice">
+<td colspan="4"><em>1. bitRangeLsbMsbStyle</em> </td></tr>
+<tr class="choice">
+<td align="right">bitOffset </td><td>Value defining the position of the least significant bit of the field within the register. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="choice">
+<td align="right">bitWidth </td><td>Value defining the bit-width of the bitfield within the register. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="choice">
+<td colspan="4"><em>2. bitRangeOffsetWidthStyle</em> </td></tr>
+<tr class="choice">
+<td align="right">lsb </td><td>Value defining the bit position of the least significant bit within the register. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="choice">
+<td align="right">msb </td><td>Value defining the bit position of the most significant bit within the register. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr class="choice">
+<td colspan="4"><em>3. bitRangePattern</em> </td></tr>
+<tr class="choice">
+<td align="right">bitRange </td><td>A string in the format: "[&lt;msb&gt;:&lt;lsb&gt;]" </td><td>bitRangeType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_special.html#elem_access">access</a> </td><td>Predefined strings set the access type. The element can be omitted if access rights get inherited from parent elements. </td><td>accessType </td><td>0..1 </td></tr>
+<tr>
+<td>modifiedWriteValues </td><td>Describe the manipulation of data written to a field. If not specified, the value written to the field is the value stored in the field. The other options are bitwise operations: <ul>
+<li><span class="XML-Token">oneToClear</span>: write data bit of one shall clear (set to zero) the corresponding bit in the field. </li>
+<li><span class="XML-Token">oneToSet</span>: write data bit of one shall set (set to one) the corresponding bit in the field. </li>
+<li><span class="XML-Token">oneToToggle</span>: write data bit of one shall toggle (invert) the corresponding bit in the field. </li>
+<li><span class="XML-Token">zeroToClear</span>: write data bit of zero shall clear (set to zero) the corresponding bit in the field. </li>
+<li><span class="XML-Token">zeroToSet</span>: write data bit of zero shall set (set to one) the corresponding bit in the field. </li>
+<li><span class="XML-Token">zeroToToggle</span>: write data bit of zero shall toggle (invert) the corresponding bit in the field. </li>
+<li><span class="XML-Token">clear</span>: after a write operation all bits in the field are cleared (set to zero). </li>
+<li><span class="XML-Token">set</span>: after a write operation all bits in the field are set (set to one). </li>
+<li><span class="XML-Token">modify</span>: after a write operation all bit in the field may be modified (default). </li>
+</ul>
+</td><td>modifiedWriteValuesType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_writeConstraint">writeConstraint</a> </td><td>Three mutually exclusive options exist to set write-constraints. </td><td>writeConstraintType </td><td>0..1 </td></tr>
+<tr>
+<td>readAction </td><td>If set, it specifies the side effect following a read operation. If not set, the field is not modified after a read. The defined side effects are: <ul>
+<li><span class="XML-Token">clear</span>: The field is cleared (set to zero) following a read operation. </li>
+<li><span class="XML-Token">set</span>: The field is set (set to ones) following a read operation. </li>
+<li><span class="XML-Token">modify</span>: The field is modified in some way after a read operation. </li>
+<li><span class="XML-Token">modifyExternal</span>: One or more dependent resources other than the current field are immediately affected by a read operation (it is recommended that the field description specifies these dependencies).</li>
+</ul>
+Debuggers are not expected to read this field location unless explicitly instructed by the user. </td><td>readActionType </td><td>0..1 register </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_enumeratedValues">enumeratedValues</a> </td><td>Next lower level of description. </td><td>enumerationType </td><td>0..2 </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_enumeratedValues"></a>
+/device/peripherals/peripheral/registers/.../field/enumeratedValues element</h1>
+<p>The concept of enumerated values creates a map between unsigned integers and an identifier string. In addition, a description string can be associated with each entry in the map.</p>
+<pre>
+ 0 &lt;-&gt; disabled -&gt; "The clock source clk0 is turned off."
+ 1 &lt;-&gt; enabled -&gt; "The clock source clk1 is running."
+ 2 &lt;-&gt; reserved -&gt; "Reserved values. Do not use."
+ 3 &lt;-&gt; reserved -&gt; "Reserved values. Do not use."
+</pre><p>This information generates an <em>enum</em> in the device header file. The debugger may use this information to display the identifier string as well as the description. Just like symbolic constants making source code more readable, the system view in the debugger becomes more instructive. The detailed description can provide reference manual level details within the debugger.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;enumeratedValues&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;name&gt;TimerIntSelect&lt;/name&gt;</div>
+<div class="line"> &lt;usage&gt;read-write&lt;/usage&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;enumeratedValue&gt;</div>
+<div class="line"> &lt;name&gt;disabled&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;The clock source clk0 is turned off.&lt;/description&gt;</div>
+<div class="line"> &lt;value&gt;0&lt;/value&gt;</div>
+<div class="line"> &lt;/enumeratedValue&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;enumeratedValue&gt;</div>
+<div class="line"> &lt;name&gt;enabled&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;The clock source clk1 is running.&lt;/description&gt;</div>
+<div class="line"> &lt;value&gt;1&lt;/value&gt;</div>
+<div class="line"> &lt;/enumeratedValue&gt;</div>
+<div class="line"></div>
+<div class="line"> &lt;enumeratedValue&gt;</div>
+<div class="line"> &lt;name&gt;reserved&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;Reserved values. Do not use.&lt;/description&gt;</div>
+<div class="line"> &lt;isDefault&gt;<span class="keyword">true</span>&lt;/isDefault&gt;</div>
+<div class="line"> &lt;/enumeratedValue&gt;</div>
+<div class="line"></div>
+<div class="line">&lt;/enumeratedValues&gt;</div>
+</div><!-- fragment --><p><a class="anchor" id="elem_enumeratedValues_sc"></a><b>/device/peripherals/peripheral/registers/.../field/enumeratedValues</b> </p>
+<table class="cmtable" summary="Enumerated Values Level Schema">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_field">field</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_field">/device/peripherals/peripheral/registers/.../fields/field element</a> </td></tr>
+<tr>
+<th>Attributes </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>derivedFrom </td><td>Makes a copy from a previously defined <em>enumeratedValues</em> section. No modifications are allowed. An <em>enumeratedValues</em> entry is referenced by its name. If the name is not unique throughout the description, it needs to be further qualified by specifying the associated field, register, and peripheral as required. For example: <pre>
+ field: clk.dis_en_enum
+ register + field: ctrl.clk.dis_en_enum
+ peripheral + register + field: timer0.ctrl.clk.dis_en_enum
+</pre> </td><td>xs:Name </td><td>0..1 </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>name </td><td>Identifier for the whole enumeration section. </td><td>xs:Name </td><td>0..1 </td></tr>
+<tr>
+<td>headerEnumName </td><td>Identifier for the enumeration section. Overwrites the hierarchical enumeration type in the device header file. User is responsible for uniqueness across description. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td>usage </td><td>Possible values are <span class="XML-Token">read<em>,</em> write<em>, or</em> read-write</span>. This allows specifying two different enumerated values depending whether it is to be used for a read or a write access. If not specified, the default value <span class="XML-Token">read-write</span> is used. </td><td>enumUsageType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_enumeratedValue">enumeratedValue</a> </td><td>Describes a single entry in the enumeration. The number of required items depends on the bit-width of the associated field. </td><td>enumeratedValueType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="elem_enumeratedValue"></a>
+/device/peripherals/peripheral/registers/.../enumeratedValue element</h1>
+<p>An <em>enumeratedValue</em> defines a map between an unsigned integer and a string.</p>
+<p><a class="anchor" id="elem_enumeratedValue_sc"></a><b>/device/peripherals/peripheral/registers/.../enumeratedValue</b> </p>
+<table class="cmtable" summary="Enumerated Value">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_enumeratedValues">enumeratedValues</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_enumeratedValues">/device/peripherals/peripheral/registers/.../field/enumeratedValues element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> </td><td colspan="3"><a class="el" href="elem_special.html#elem_dimArrayIndex">/device/peripherals/peripheral/.../dimArrayIndex element</a> </td></tr>
+<tr>
+<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>name </td><td>String describing the semantics of the value. Can be displayed instead of the value. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td>description </td><td>Extended string describing the value. </td><td>xs:string </td><td>0..1 </td></tr>
+<tr class="choice">
+<td colspan="3"><em>choice of</em> </td><td>1..1 </td></tr>
+<tr class="choice">
+<td align="right">value </td><td>Defines the constant for the bit-field as decimal, hexadecimal (0x...) or binary (0b... or #...) number. E.g.: <pre>
+ &lt;value&gt;15&lt;/value&gt;
+ &lt;value&gt;0xf&lt;/value&gt;
+ &lt;value&gt;0b1111&lt;/value&gt;
+ &lt;value&gt;#1111&lt;/value&gt;
+</pre> In addition the binary format supports <em>'do not care'</em> bits represented by <b><span class="XML-Token">x</span></b>. E.g. specifying value 14 and 15 as: <pre>
+ &lt;value&gt;0b111x&lt;/value&gt;
+ &lt;value&gt;#111x&lt;/value&gt;
+ </pre> </td><td style="white-space:nowrap">scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr class="choice">
+<td align="right">isDefault </td><td>Defines the name and description for all other values that are not listed explicitly. </td><td>xs:boolean </td><td>0..1 </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/elem_special.html b/docs/SVD/html/elem_special.html
new file mode 100644
index 0000000..b05624a
--- /dev/null
+++ b/docs/SVD/html/elem_special.html
@@ -0,0 +1,302 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Special Elements</title>
+<title>CMSIS-SVD: Special Elements</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('elem_special.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Special Elements </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This section describes elements that occur on various levels and specifies the general rules. Specific requirements are mentioned in the place where these elements occur.</p>
+<ul>
+<li><a class="el" href="elem_special.html#dimElementGroup_gr">dimElementGroup</a> - Elements that can be used to define arrays and lists in the code.</li>
+<li><a class="el" href="elem_special.html#registerPropertiesGroup_gr">registerPropertiesGroup</a> - Register properties. Higher level definitions use as default values for lower level descriptions.</li>
+</ul>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="dimElementGroup_gr"></a>
+dimElementGroup</h1>
+<p>The elements below appear on various levels and can be used to define arrays and lists in the code. Single descriptions get duplicated automatically into an array or a list. The subsequent is true for all elements of type <em>dimableIdentifierType</em>.</p>
+<ul>
+<li>To create arrays, use the placeholder <em>[%s]</em> at the end of a <em>&lt;name&gt;</em> and <em>&lt;displayName&gt;</em>. <span style="color:red">Do not define <em>&lt;dimIndex&gt;</em> in this case!</span></li>
+<li>To create lists, use the placeholder <em>%s</em> anywhere within or at the end of a <em>&lt;name&gt;</em> and <em>&lt;displayName&gt;</em>.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Some of the <em>&lt;name&gt;</em> and <em>&lt;displayName&gt;</em> elements can use both placeholders (<em>[%s]</em>, <em>%s</em>), others just one. Refer to <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a>, <a class="el" href="elem_registers.html#elem_register">register</a>, <a class="el" href="elem_registers.html#elem_cluster">cluster</a>, and <a class="el" href="elem_registers.html#elem_field">field</a> for details.</dd></dl>
+<table class="cmtable" summary="dimElementGroup Description">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html#elem_peripheral">/device/peripherals/peripheral element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_register">register</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_register">/device/peripherals/peripheral/registers/.../register element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_cluster">cluster</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_cluster">/device/pripherals/peripheral/registers/.../cluster element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_field">field</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_field">/device/peripherals/peripheral/registers/.../fields/field element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Grouped Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>dim </td><td>Defines the number of elements in an array or list. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>dimIncrement </td><td>Specify the address increment between two neighboring array or list members in the address map. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
+<tr>
+<td>dimIndex </td><td>Specify the strings that substitue the placeholder <em>%s</em> within <em>&lt;name&gt;</em> and <em>&lt;displayName&gt;</em>. By default, <em>&lt;dimIndex&gt;</em> is a value starting with <span class="XML-Token">0</span>. <br/>
+<b>Remark:</b> Do not define <em>&lt;dimIndex&gt;</em> when using the placeholder <em>[%s]</em> in <em>&lt;name&gt;</em> or <em>&lt;displayName&gt;</em>. </td><td>dimIndexType </td><td>0..1 </td></tr>
+<tr>
+<td>dimName </td><td>Specify the name of the C-type structure. If not defined, then the entry in the <em>&lt;name&gt;</em> element is used. </td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> </td><td>Grouping element to create enumerations in the header file. </td><td>dimArrayIndexType </td><td>0..1 </td></tr>
+</table>
+<p><b>Example:</b> The examples creates definitions for registers.</p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> &lt;dim&gt;6&lt;/dim&gt; </div>
+<div class="line"> &lt;dimIncrement&gt;4&lt;/dimIncrement&gt; </div>
+<div class="line"> &lt;dimIndex&gt;A,B,C,D,E,Z&lt;/dimIndex&gt; </div>
+<div class="line"> &lt;name&gt;GPIO_%s_CTRL&lt;/name&gt; </div>
+<div class="line">...</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+</div><!-- fragment --><p>The code above generates the list: =&gt; GPIO_A_CTRL, GPIO_B_CTRL, GPIO_C_CTRL, GPIO_D_CTRL, GPIO_E_CTRL, GPIO_Z_CTRL</p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> &lt;dim&gt;4&lt;/dim&gt; </div>
+<div class="line"> &lt;dimIncrement&gt;4&lt;/dimIncrement&gt; </div>
+<div class="line"> &lt;dimIndex&gt;3-6&lt;/dimIndex&gt; </div>
+<div class="line"> &lt;name&gt;IRQ%s&lt;/name&gt; </div>
+<div class="line">...</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+</div><!-- fragment --><p>The example above generates the list: =&gt; IRQ3, IRQ4, IRQ5, IRQ6</p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;<span class="keyword">register</span>&gt;</div>
+<div class="line"> &lt;dim&gt;4&lt;/dim&gt; </div>
+<div class="line"> &lt;dimIncrement&gt;4&lt;/dimIncrement&gt; </div>
+<div class="line"> &lt;name&gt;MyArr[%s]&lt;/name&gt; </div>
+<div class="line">...</div>
+<div class="line">&lt;/<span class="keyword">register</span>&gt;</div>
+</div><!-- fragment --><p>The example above generates the array: =&gt; MyArr[4]</p>
+<p>&#160;</p>
+<hr/>
+<h2><a class="anchor" id="elem_dimArrayIndex"></a>
+/device/peripherals/peripheral/.../dimArrayIndex element</h2>
+<p>This information is used for generating an <em>enum</em> in the device header file. The debugger may use this information to display the identifier string as well as the description. Just like symbolic constants making source code more readable, the system view in the debugger becomes more instructive.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">...</div>
+<div class="line">&lt;dimArrayIndex&gt;</div>
+<div class="line"> &lt;headerEnumName&gt;FSMC_EnumArray&lt;/headerEnumName&gt;</div>
+<div class="line"> &lt;enumeratedValue&gt;</div>
+<div class="line"> &lt;name&gt;UART0&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;UART0 Peripheral&lt;/description&gt;</div>
+<div class="line"> &lt;value&gt;0&lt;/value&gt;</div>
+<div class="line"> &lt;/enumeratedValue&gt;</div>
+<div class="line"> &lt;enumeratedValue&gt;</div>
+<div class="line"> &lt;name&gt;TIMER0&lt;/name&gt;</div>
+<div class="line"> &lt;description&gt;TIMER0 Peripheral&lt;/description&gt;</div>
+<div class="line"> &lt;value&gt;1&lt;/value&gt;</div>
+<div class="line"> &lt;/enumeratedValue&gt;</div>
+<div class="line">&lt;/dimArrayIndex&gt;</div>
+<div class="line">...</div>
+</div><!-- fragment --><p><a class="anchor" id="elem_dimArrayIndex_sc"></a><b>/device/peripherals/peripheral/.../dimArrayIndex</b> </p>
+<table class="cmtable" summary="dimArrayIndex Table">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html#elem_peripheral">/device/peripherals/peripheral element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_register">register</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_register">/device/peripherals/peripheral/registers/.../register element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_cluster">cluster</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_cluster">/device/pripherals/peripheral/registers/.../cluster element</a> </td></tr>
+<tr>
+<th style="white-space:nowrap">Child Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>headerEnumName </td><td><p class="starttd">Specify the base name of enumerations. Overwrites the hierarchical enumeration type in the device header file. User is responsible for uniqueness across description. The headerfile generator uses the name of a peripheral or cluster as the base name for enumeration types. If <em>&lt;headerEnumName&gt;</em> element is specfied, then this string is used.</p>
+<p class="endtd"></p>
+</td><td>identifierType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_enumeratedValue">enumeratedValue</a> </td><td>Specify the values contained in the enumeration. </td><td>enumeratedValueType </td><td>1..* </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+<h1><a class="anchor" id="registerPropertiesGroup_gr"></a>
+registerPropertiesGroup</h1>
+<p>The following elements are available on various levels. Element values defined on a lower level overwrite element values defined on a more general level. For example, <em>&lt;register&gt;</em>.<em>&lt;size&gt;</em> overwrites <em>&lt;peripheral&gt;</em>.<em>&lt;size&gt;</em>. Elements not defined on a more general level, must be defined at <em>&lt;register&gt;</em> level at the latest.</p>
+<p>Special requirements are described on the level where the element occurs. Click on the parent element in the table below for details.</p>
+<p><b>Example:</b> </p>
+<div class="fragment"><div class="line">&lt;device schemaVersion=<span class="stringliteral">&quot;1.3&quot;</span> xmlns:xs=<span class="stringliteral">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> xs:noNamespaceSchemaLocation=<span class="stringliteral">&quot;CMSIS-SVD.xsd&quot;</span>&gt;</div>
+<div class="line"> &lt;name&gt;ARM_Cortex_M3&lt;/name&gt;</div>
+<div class="line"> &lt;version&gt;0.1&lt;/version&gt;</div>
+<div class="line"> &lt;description&gt;Arm Cortex-M3 based Microcontroller demonstration device&lt;/description&gt;</div>
+<div class="line"> &lt;addressUnitBits&gt;8&lt;/addressUnitBits&gt;</div>
+<div class="line"> &lt;width&gt;32&lt;/width&gt;</div>
+<div class="line"> &lt;size&gt;32&lt;/size&gt;</div>
+<div class="line"> &lt;access&gt;read-write&lt;/access&gt;</div>
+<div class="line"> &lt;protection&gt;s&lt;/protection&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;peripherals&gt;</div>
+<div class="line"> ...</div>
+<div class="line"> &lt;/peripherals&gt;</div>
+<div class="line">&lt;/device&gt;</div>
+</div><!-- fragment --><p>Default settings have been defined for <em>&lt;width&gt;</em>, <em>&lt;size&gt;</em>, <em>&lt;access&gt;</em>, and <em>&lt;protection&gt;</em> on device level. These settings can be refined on subsequent levels.</p>
+<p><a class="anchor" id="elem_register_sc"></a><b>Register Properties</b> </p>
+<table class="cmtable" summary="Register Properties Group Elements">
+<tr>
+<th style="white-space:nowrap">Parent Element </th><th colspan="3">Element Chain </th></tr>
+<tr>
+<td><a class="el" href="elem_device.html">device</a> </td><td colspan="3"><a class="el" href="elem_device.html">/device element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html#elem_peripheral">/device/peripherals/peripheral element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_register">register</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_register">/device/peripherals/peripheral/registers/.../register element</a> </td></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_cluster">cluster</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_cluster">/device/pripherals/peripheral/registers/.../cluster element</a> </td></tr>
+<tr>
+<th>&#160; </th><th colspan="3"><span class="XML-Token">Below: Parent elements that have a reference to a single element of this block</span> </th></tr>
+<tr>
+<td><a class="el" href="elem_registers.html#elem_field">field</a> </td><td colspan="3"><a class="el" href="elem_registers.html#elem_field">/device/peripherals/peripheral/registers/.../fields/field element</a> (only for element <em>&lt;access&gt;</em>) </td></tr>
+<tr>
+<td><a class="el" href="elem_cpu.html#elem_sauRegionsConfig">sauRegionsConfig</a> </td><td colspan="3"><a class="el" href="elem_cpu.html#elem_sauRegionsConfig">/device/cpu/sauRegionsConfig element</a> (element <em>&lt;protection&gt;</em> for attribute <em>&lt;protectionWhenDisabled&gt;</em>) </td></tr>
+<tr>
+<td><a class="el" href="elem_peripherals.html#elem_addressBlock">addressBlock</a> </td><td colspan="3"><a class="el" href="elem_peripherals.html#elem_addressBlock">/device/peripherals/peripheral/addressBlock element</a> (only for element <em>&lt;protection&gt;</em>) </td></tr>
+<tr>
+<th style="white-space:nowrap">Elements </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
+<tr>
+<td>size </td><td>Define the default bit-width of any device register (implicit inheritance). The value can be redefined on any lower level using the <em>&lt;size&gt;</em> element there. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td><a class="anchor" id="elem_access"></a>access </td><td>Define access rights. Access rights can be redefined at any lower level. Use one of the following predefined values:<ul>
+<li><span class="XML-Token">read-only</span>: Read access is permitted. Write operations have an undefined result.</li>
+<li><span class="XML-Token">write-only</span>: Read operations have an undefined result. Write access is permitted.</li>
+<li><span class="XML-Token">read-write</span>: Read and write accesses are permitted. Writes affect the state of the register and reads return the register value.</li>
+<li><span class="XML-Token">writeOnce</span>: Read operations have an undefined results. Only the first write after reset has an effect.</li>
+<li><span class="XML-Token">read-writeOnce</span>: Read access is always permitted. Only the first write access after a reset will have an effect on the content. Other write operations have an undefined result. </li>
+</ul>
+</td><td>accessType </td><td>0..1 </td></tr>
+<tr>
+<td><a class="anchor" id="elem_protection"></a>protection </td><td>Specify the security privilege to access an address region. This information is relevant for the programmer as well as the debugger when no universal access permissions have been granted. If no specific information is provided, an address region is accessible in any mode. The following values can be used to protect accesses by the programmer or debugger:<ul>
+<li><span class="XML-Token">"s"</span> - secure permission required for access</li>
+<li><span class="XML-Token">"n"</span> - non-secure or secure permission required for access</li>
+<li><span class="XML-Token">"p"</span> - privileged permission required for access </li>
+</ul>
+</td><td>protectionStringType </td><td>0..1 </td></tr>
+<tr>
+<td>resetValue </td><td>Define the default value for all registers at RESET. The value can be redefined on any lower level using the <em>&lt;resetValue&gt;</em> element there. The actual reset value is calculated from the <em>&lt;resetValue&gt;</em> and the <em>&lt;resetMask&gt;</em>. The mask is used to specify bits with an undefined reset value. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+<tr>
+<td>resetMask </td><td>Identify register bits that have a defined reset value. These bit positions are set to <span class="XML-Token">1</span>. Bit positions with an undefined reset value are set to <span class="XML-Token">0</span>. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/ftv2blank.png b/docs/SVD/html/ftv2blank.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/SVD/html/ftv2blank.png
Binary files differ
diff --git a/docs/SVD/html/ftv2cl.png b/docs/SVD/html/ftv2cl.png
new file mode 100644
index 0000000..132f657
--- /dev/null
+++ b/docs/SVD/html/ftv2cl.png
Binary files differ
diff --git a/docs/SVD/html/ftv2doc.png b/docs/SVD/html/ftv2doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/docs/SVD/html/ftv2doc.png
Binary files differ
diff --git a/docs/SVD/html/ftv2folderclosed.png b/docs/SVD/html/ftv2folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/docs/SVD/html/ftv2folderclosed.png
Binary files differ
diff --git a/docs/SVD/html/ftv2folderopen.png b/docs/SVD/html/ftv2folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/docs/SVD/html/ftv2folderopen.png
Binary files differ
diff --git a/docs/SVD/html/ftv2lastnode.png b/docs/SVD/html/ftv2lastnode.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/SVD/html/ftv2lastnode.png
Binary files differ
diff --git a/docs/SVD/html/ftv2link.png b/docs/SVD/html/ftv2link.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/docs/SVD/html/ftv2link.png
Binary files differ
diff --git a/docs/SVD/html/ftv2mlastnode.png b/docs/SVD/html/ftv2mlastnode.png
new file mode 100644
index 0000000..0b63f6d
--- /dev/null
+++ b/docs/SVD/html/ftv2mlastnode.png
Binary files differ
diff --git a/docs/SVD/html/ftv2mnode.png b/docs/SVD/html/ftv2mnode.png
new file mode 100644
index 0000000..0b63f6d
--- /dev/null
+++ b/docs/SVD/html/ftv2mnode.png
Binary files differ
diff --git a/docs/SVD/html/ftv2mo.png b/docs/SVD/html/ftv2mo.png
new file mode 100644
index 0000000..4bfb80f
--- /dev/null
+++ b/docs/SVD/html/ftv2mo.png
Binary files differ
diff --git a/docs/SVD/html/ftv2node.png b/docs/SVD/html/ftv2node.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/SVD/html/ftv2node.png
Binary files differ
diff --git a/docs/SVD/html/ftv2ns.png b/docs/SVD/html/ftv2ns.png
new file mode 100644
index 0000000..72e3d71
--- /dev/null
+++ b/docs/SVD/html/ftv2ns.png
Binary files differ
diff --git a/docs/SVD/html/ftv2plastnode.png b/docs/SVD/html/ftv2plastnode.png
new file mode 100644
index 0000000..c6ee22f
--- /dev/null
+++ b/docs/SVD/html/ftv2plastnode.png
Binary files differ
diff --git a/docs/SVD/html/ftv2pnode.png b/docs/SVD/html/ftv2pnode.png
new file mode 100644
index 0000000..c6ee22f
--- /dev/null
+++ b/docs/SVD/html/ftv2pnode.png
Binary files differ
diff --git a/docs/SVD/html/ftv2splitbar.png b/docs/SVD/html/ftv2splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/docs/SVD/html/ftv2splitbar.png
Binary files differ
diff --git a/docs/SVD/html/ftv2vertline.png b/docs/SVD/html/ftv2vertline.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/SVD/html/ftv2vertline.png
Binary files differ
diff --git a/docs/SVD/html/index.html b/docs/SVD/html/index.html
new file mode 100644
index 0000000..8792ca9
--- /dev/null
+++ b/docs/SVD/html/index.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>System View Description</title>
+<title>CMSIS-SVD: System View Description</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('index.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">System View Description </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h2>Introduction </h2>
+<p>The CMSIS System View Description format(CMSIS-SVD) formalizes the description of the system contained in Arm Cortex-M processor-based microcontrollers, in particular, the memory mapped registers of peripherals. The detail contained in system view descriptions is comparable to the data in device reference manuals. The information ranges from high level functional descriptions of a peripheral all the way down to the definition and purpose of an individual bit field in a memory mapped register.</p>
+<p>CMSIS-SVD files are developed and maintained by silicon vendors. Silicon vendors distribute their descriptions as part of CMSIS Device Family Packs. Tool vendors use CMSIS-SVD files for providing device-specific debug views of peripherals in their debugger. Last but not least, CMSIS-compliant device header files are generated from CMSIS-SVD files.</p>
+<h2>CMSIS-SVD Benefits </h2>
+<ul>
+<li>For Software Developers:<ul>
+<li>Consistency between device header file and what is being displayed by the debugger.</li>
+<li>Detailed information about peripherals, registers, fields, and bit values as well as named interrupts from within the debugger, without the need to reference device documentation.</li>
+<li>Convenient access to new and updated descriptions as part of the silicon vendor's CMSIS Device Family Packs as the packs are made availabl by silicon vendors.</li>
+<li>Improved software development efficiency.</li>
+</ul>
+</li>
+<li>For Silicon Vendors:<ul>
+<li>A tool vendor independent file format enables early device support by a wide range of toolchains with limited effort.</li>
+<li>The XML-based format helps ease the integration into in-house design flows.</li>
+<li>Automated generation of CMSIS compliant device header files.</li>
+<li>Full control throughout the life cycle of the CMSIS-SVD files from creation to maintenance.</li>
+</ul>
+</li>
+<li>For Tool Vendors:<ul>
+<li>Unified file format across silicon vendors helps the efficiency of supporting a wide range of devices in a timely manner.</li>
+<li>Silicon vendors can provide early review access to the device support via restricted access to CMSIS Device Family Packs.</li>
+<li>Updated descriptions are available over the web simplifying the maintenance of device support.</li>
+</ul>
+</li>
+</ul>
+<h2>Language Specification and Conventions </h2>
+<ul>
+<li><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+</ul>
+<h2>CMSIS-SVD in ARM::CMSIS Pack </h2>
+<p>The following files relevant to CMSIS-SVD are present in the <b>ARM::CMSIS</b> Pack directories:</p>
+<table class="doxtable">
+<tr>
+<th>File/Folder </th><th>Content </th></tr>
+<tr>
+<td><b>CMSIS\Documentation\SVD</b> </td><td>This documentation </td></tr>
+<tr>
+<td><b>CMSIS\Utilities</b> </td><td>Exemplary SVD file (<a class="el" href="svd_Example_pg.html">ARM_Example.svd</a>) and generated header file (ARM_Example.h). </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/jquery.js b/docs/SVD/html/jquery.js
new file mode 100644
index 0000000..3db33e6
--- /dev/null
+++ b/docs/SVD/html/jquery.js
@@ -0,0 +1,72 @@
+/*!
+ * jQuery JavaScript Library v1.7.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Nov 21 21:11:03 2011 -0500
+ */
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))
+}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;
+if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false
+}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1
+},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);
+ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;
+if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
+}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
+})}})(window);
+/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ */
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;
+p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
+(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);
diff --git a/docs/SVD/html/nav_f.png b/docs/SVD/html/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/docs/SVD/html/nav_f.png
Binary files differ
diff --git a/docs/SVD/html/nav_g.png b/docs/SVD/html/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/docs/SVD/html/nav_g.png
Binary files differ
diff --git a/docs/SVD/html/nav_h.png b/docs/SVD/html/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/docs/SVD/html/nav_h.png
Binary files differ
diff --git a/docs/SVD/html/navtree.css b/docs/SVD/html/navtree.css
new file mode 100644
index 0000000..41a9cb9
--- /dev/null
+++ b/docs/SVD/html/navtree.css
@@ -0,0 +1,143 @@
+#nav-tree .children_ul {
+ margin:0;
+ padding:4px;
+}
+
+#nav-tree ul {
+ list-style:none outside none;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree li {
+ white-space:nowrap;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .plus {
+ margin:0px;
+}
+
+#nav-tree .selected {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#nav-tree img {
+ margin:0px;
+ padding:0px;
+ border:0px;
+ vertical-align: middle;
+}
+
+#nav-tree a {
+ text-decoration:none;
+ padding:0px;
+ margin:0px;
+ outline:none;
+}
+
+#nav-tree .label {
+ margin:0px;
+ padding:0px;
+ font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+ padding:2px;
+}
+
+#nav-tree .selected a {
+ text-decoration:none;
+ color:#fff;
+}
+
+#nav-tree .children_ul {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .item {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree {
+ padding: 0px 0px;
+ background-color: #FAFAFF;
+ font-size:14px;
+ overflow:auto;
+}
+
+#doc-content {
+ overflow:auto;
+ display:block;
+ padding:0px;
+ margin:0px;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+ padding:0 6px 0 0;
+ margin: 0px;
+ display:block;
+ position: absolute;
+ left: 0px;
+ width: 250px;
+}
+
+.ui-resizable .ui-resizable-handle {
+ display:block;
+}
+
+.ui-resizable-e {
+ background:url("ftv2splitbar.png") repeat scroll right center transparent;
+ cursor:e-resize;
+ height:100%;
+ right:0;
+ top:0;
+ width:6px;
+}
+
+.ui-resizable-handle {
+ display:none;
+ font-size:0.1px;
+ position:absolute;
+ z-index:1;
+}
+
+#nav-tree-contents {
+ margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+ position:absolute;
+ top:5px;
+ right:24px;
+ z-index:0;
+}
+
+#nav-sync img {
+ opacity:0.3;
+}
+
+#nav-sync img:hover {
+ opacity:0.9;
+}
+
+@media print
+{
+ #nav-tree { display: none; }
+ div.ui-resizable-handle { display: none; position: relative; }
+}
+
diff --git a/docs/SVD/html/navtree.js b/docs/SVD/html/navtree.js
new file mode 100644
index 0000000..5f85fe2
--- /dev/null
+++ b/docs/SVD/html/navtree.js
@@ -0,0 +1,534 @@
+var NAVTREE =
+[
+ [ "CMSIS-SVD", "index.html", [
+ [ "System View Description", "index.html", null ],
+ [ "Revision History", "svd_revisionHistory.html", null ],
+ [ "SVD File Validation and Usage", "svd_validate_file_pg.html", null ],
+ [ "SVDConv.exe", "svd_SVDConv_pg.html", null ],
+ [ "SVD Description (*.svd) Format", "svd_Format_pg.html", "svd_Format_pg" ],
+ [ "CMSIS-SVD Schema File", "schema_1_2_gr.html", null ]
+ ] ]
+];
+
+var NAVTREEINDEX =
+[
+"elem_cpu.html"
+];
+
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
+var navTreeSubIndices = new Array();
+
+function getData(varName)
+{
+ var i = varName.lastIndexOf('/');
+ var n = i>=0 ? varName.substring(i+1) : varName;
+ return eval(n.replace(/\-/g,'_'));
+}
+
+function stripPath(uri)
+{
+ return uri.substring(uri.lastIndexOf('/')+1);
+}
+
+function stripPath2(uri)
+{
+ var i = uri.lastIndexOf('/');
+ var s = uri.substring(i+1);
+ var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+ return m ? uri.substring(i-6) : s;
+}
+
+function localStorageSupported()
+{
+ try {
+ return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+ }
+ catch(e) {
+ return false;
+ }
+}
+
+
+function storeLink(link)
+{
+ if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
+ window.localStorage.setItem('navpath',link);
+ }
+}
+
+function deleteLink()
+{
+ if (localStorageSupported()) {
+ window.localStorage.setItem('navpath','');
+ }
+}
+
+function cachedLink()
+{
+ if (localStorageSupported()) {
+ return window.localStorage.getItem('navpath');
+ } else {
+ return '';
+ }
+}
+
+function getScript(scriptName,func,show)
+{
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement('script');
+ script.id = scriptName;
+ script.type = 'text/javascript';
+ script.onload = func;
+ script.src = scriptName+'.js';
+ if ($.browser.msie && $.browser.version<=8) {
+ // script.onload does not work with older versions of IE
+ script.onreadystatechange = function() {
+ if (script.readyState=='complete' || script.readyState=='loaded') {
+ func(); if (show) showRoot();
+ }
+ }
+ }
+ head.appendChild(script);
+}
+
+function createIndent(o,domNode,node,level)
+{
+ var level=-1;
+ var n = node;
+ while (n.parentNode) { level++; n=n.parentNode; }
+ if (node.childrenData) {
+ var imgNode = document.createElement("img");
+ imgNode.style.paddingLeft=(16*level).toString()+'px';
+ imgNode.width = 16;
+ imgNode.height = 22;
+ imgNode.border = 0;
+ node.plus_img = imgNode;
+ node.expandToggle = document.createElement("a");
+ node.expandToggle.href = "javascript:void(0)";
+ node.expandToggle.onclick = function() {
+ if (node.expanded) {
+ $(node.getChildrenUL()).slideUp("fast");
+ node.plus_img.src = node.relpath+"ftv2pnode.png";
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, false);
+ }
+ }
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ imgNode.src = node.relpath+"ftv2pnode.png";
+ } else {
+ var span = document.createElement("span");
+ span.style.display = 'inline-block';
+ span.style.width = 16*(level+1)+'px';
+ span.style.height = '22px';
+ span.innerHTML = '&#160;';
+ domNode.appendChild(span);
+ }
+}
+
+var animationInProgress = false;
+
+function gotoAnchor(anchor,aname,updateLocation)
+{
+ var pos, docContent = $('#doc-content');
+ if (anchor.parent().attr('class')=='memItemLeft' ||
+ anchor.parent().attr('class')=='fieldtype' ||
+ anchor.parent().is(':header'))
+ {
+ pos = anchor.parent().position().top;
+ } else if (anchor.position()) {
+ pos = anchor.position().top;
+ }
+ if (pos) {
+ var dist = Math.abs(Math.min(
+ pos-docContent.offset().top,
+ docContent[0].scrollHeight-
+ docContent.height()-docContent.scrollTop()));
+ animationInProgress=true;
+ docContent.animate({
+ scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+ },Math.max(50,Math.min(500,dist)),function(){
+ if (updateLocation) window.location.href=aname;
+ animationInProgress=false;
+ });
+ }
+}
+
+function newNode(o, po, text, link, childrenData, lastNode)
+{
+ var node = new Object();
+ node.children = Array();
+ node.childrenData = childrenData;
+ node.depth = po.depth + 1;
+ node.relpath = po.relpath;
+ node.isLast = lastNode;
+
+ node.li = document.createElement("li");
+ po.getChildrenUL().appendChild(node.li);
+ node.parentNode = po;
+
+ node.itemDiv = document.createElement("div");
+ node.itemDiv.className = "item";
+
+ node.labelSpan = document.createElement("span");
+ node.labelSpan.className = "label";
+
+ createIndent(o,node.itemDiv,node,0);
+ node.itemDiv.appendChild(node.labelSpan);
+ node.li.appendChild(node.itemDiv);
+
+ var a = document.createElement("a");
+ node.labelSpan.appendChild(a);
+ node.label = document.createTextNode(text);
+ node.expanded = false;
+ a.appendChild(node.label);
+ if (link) {
+ var url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ link = url;
+ } else {
+ url = node.relpath+link;
+ }
+ a.className = stripPath(link.replace('#',':'));
+ if (link.indexOf('#')!=-1) {
+ var aname = '#'+link.split('#')[1];
+ var srcPage = stripPath($(location).attr('pathname'));
+ var targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : "javascript:void(0)";
+ a.onclick = function(){
+ storeLink(link);
+ if (!$(a).parent().parent().hasClass('selected'))
+ {
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ $(a).parent().parent().addClass('selected');
+ $(a).parent().parent().attr('id','selected');
+ }
+ var anchor = $(aname);
+ gotoAnchor(anchor,aname,true);
+ };
+ } else {
+ a.href = url;
+ a.onclick = function() { storeLink(link); }
+ }
+ } else {
+ if (childrenData != null)
+ {
+ a.className = "nolink";
+ a.href = "javascript:void(0)";
+ a.onclick = node.expandToggle.onclick;
+ }
+ }
+
+ node.childrenUL = null;
+ node.getChildrenUL = function() {
+ if (!node.childrenUL) {
+ node.childrenUL = document.createElement("ul");
+ node.childrenUL.className = "children_ul";
+ node.childrenUL.style.display = "none";
+ node.li.appendChild(node.childrenUL);
+ }
+ return node.childrenUL;
+ };
+
+ return node;
+}
+
+function showRoot()
+{
+ var headerHeight = $("#top").height();
+ var footerHeight = $("#nav-path").height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ (function (){ // retry until we can scroll to the selected item
+ try {
+ var navtree=$('#nav-tree');
+ navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
+ } catch (err) {
+ setTimeout(arguments.callee, 0);
+ }
+ })();
+}
+
+function expandNode(o, node, imm, showRoot)
+{
+ if (node.childrenData && !node.expanded) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ expandNode(o, node, imm, showRoot);
+ }, showRoot);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ } if (imm || ($.browser.msie && $.browser.version>8)) {
+ // somehow slideDown jumps to the start of tree for IE9 :-(
+ $(node.getChildrenUL()).show();
+ } else {
+ $(node.getChildrenUL()).slideDown("fast");
+ }
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ }
+ }
+}
+
+function glowEffect(n,duration)
+{
+ n.addClass('glow').delay(duration).queue(function(next){
+ $(this).removeClass('glow');next();
+ });
+}
+
+function highlightAnchor()
+{
+ var aname = $(location).attr('hash');
+ var anchor = $(aname);
+ if (anchor.parent().attr('class')=='memItemLeft'){
+ var rows = $('.memberdecls tr[class$="'+
+ window.location.hash.substring(1)+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
+ glowEffect(anchor.parents('div.memitem'),1000); // enum value
+ } else if (anchor.parent().attr('class')=='fieldtype'){
+ glowEffect(anchor.parent().parent(),1000); // struct field
+ } else if (anchor.parent().is(":header")) {
+ glowEffect(anchor.parent(),1000); // section header
+ } else {
+ glowEffect(anchor.next(),1000); // normal member
+ }
+ gotoAnchor(anchor,aname,false);
+}
+
+function selectAndHighlight(hash,n)
+{
+ var a;
+ if (hash) {
+ var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1);
+ a=$('.item a[class$="'+link+'"]');
+ }
+ if (a && a.length) {
+ a.parent().parent().addClass('selected');
+ a.parent().parent().attr('id','selected');
+ highlightAnchor();
+ } else if (n) {
+ $(n.itemDiv).addClass('selected');
+ $(n.itemDiv).attr('id','selected');
+ }
+ if ($('#nav-tree-contents .item:first').hasClass('selected')) {
+ $('#nav-sync').css('top','30px');
+ } else {
+ $('#nav-sync').css('top','5px');
+ }
+ showRoot();
+}
+
+function showNode(o, node, index, hash)
+{
+ if (node && node.childrenData) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ showNode(o,node,index,hash);
+ },true);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).css({'display':'block'});
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ var n = node.children[o.breadcrumbs[index]];
+ if (index+1<o.breadcrumbs.length) {
+ showNode(o,n,index+1,hash);
+ } else {
+ if (typeof(n.childrenData)==='string') {
+ var varName = n.childrenData;
+ getScript(n.relpath+varName,function(){
+ n.childrenData = getData(varName);
+ node.expanded=false;
+ showNode(o,node,index,hash); // retry with child node expanded
+ },true);
+ } else {
+ var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
+ if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
+ expandNode(o, n, true, true);
+ }
+ selectAndHighlight(hash,n);
+ }
+ }
+ }
+ } else {
+ selectAndHighlight(hash);
+ }
+}
+
+function removeToInsertLater(element) {
+ var parentNode = element.parentNode;
+ var nextSibling = element.nextSibling;
+ parentNode.removeChild(element);
+ return function() {
+ if (nextSibling) {
+ parentNode.insertBefore(element, nextSibling);
+ } else {
+ parentNode.appendChild(element);
+ }
+ };
+}
+
+function getNode(o, po)
+{
+ var insertFunction = removeToInsertLater(po.li);
+ po.childrenVisited = true;
+ var l = po.childrenData.length-1;
+ for (var i in po.childrenData) {
+ var nodeData = po.childrenData[i];
+ po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
+ i==l);
+ }
+ insertFunction();
+}
+
+function gotoNode(o,subIndex,root,hash,relpath)
+{
+ var nti = navTreeSubIndices[subIndex][root+hash];
+ o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
+ o.breadcrumbs.unshift(0); // add 0 for root node
+ showNode(o, o.node, 0, hash);
+ }
+}
+
+function navTo(o,root,hash,relpath)
+{
+ var link = cachedLink();
+ if (link) {
+ var parts = link.split('#');
+ root = parts[0];
+ if (parts.length>1) hash = '#'+parts[1];
+ else hash='';
+ }
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ //root=root.replace(/_source\./,'.'); // source link to doc link
+ }
+ var url=root+hash;
+ var i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function(){
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ },true);
+ }
+}
+
+function showSyncOff(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
+}
+
+function showSyncOn(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
+}
+
+function toggleSyncButton(relpath)
+{
+ var navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
+ navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash'));
+ } else {
+ navSync.addClass('sync');
+ showSyncOn(navSync,relpath);
+ deleteLink();
+ }
+}
+
+function initNavTree(toroot,relpath)
+{
+ var o = new Object();
+ o.toroot = toroot;
+ o.node = new Object();
+ o.node.li = document.getElementById("nav-tree-contents");
+ o.node.childrenData = NAVTREE;
+ o.node.children = new Array();
+ o.node.childrenUL = document.createElement("ul");
+ o.node.getChildrenUL = function() { return o.node.childrenUL; };
+ o.node.li.appendChild(o.node.childrenUL);
+ o.node.depth = 0;
+ o.node.relpath = relpath;
+ o.node.expanded = false;
+ o.node.isLast = true;
+ o.node.plus_img = document.createElement("img");
+ o.node.plus_img.src = relpath+"ftv2pnode.png";
+ o.node.plus_img.width = 16;
+ o.node.plus_img.height = 22;
+
+ if (localStorageSupported()) {
+ var navSync = $('#nav-sync');
+ if (cachedLink()) {
+ showSyncOff(navSync,relpath);
+ navSync.removeClass('sync');
+ } else {
+ showSyncOn(navSync,relpath);
+ }
+ navSync.click(function(){ toggleSyncButton(relpath); });
+ }
+
+ $(window).load(function(){
+ navTo(o,toroot,window.location.hash,relpath);
+ showRoot();
+ });
+
+ $(window).bind('hashchange', function(){
+ if (window.location.hash && window.location.hash.length>1){
+ var a;
+ if ($(location).attr('hash')){
+ var clslink=stripPath($(location).attr('pathname'))+':'+
+ $(location).attr('hash').substring(1);
+ a=$('.item a[class$="'+clslink+'"]');
+ }
+ if (a==null || !$(a).parent().parent().hasClass('selected')){
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ var link=stripPath2($(location).attr('pathname'));
+ navTo(o,link,$(location).attr('hash'),relpath);
+ } else if (!animationInProgress) {
+ $('#doc-content').scrollTop(0);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ navTo(o,toroot,window.location.hash,relpath);
+ }
+ })
+}
+
diff --git a/docs/SVD/html/navtreeindex0.js b/docs/SVD/html/navtreeindex0.js
new file mode 100644
index 0000000..7ab44a8
--- /dev/null
+++ b/docs/SVD/html/navtreeindex0.js
@@ -0,0 +1,37 @@
+var NAVTREEINDEX0 =
+{
+"elem_cpu.html":[4,3],
+"elem_cpu.html#elem_region":[4,3,1],
+"elem_cpu.html#elem_sauRegionsConfig":[4,3,0],
+"elem_device.html":[4,2],
+"elem_peripherals.html":[4,4],
+"elem_peripherals.html#elem_addressBlock":[4,4,1],
+"elem_peripherals.html#elem_interrupt":[4,4,2],
+"elem_peripherals.html#elem_peripheral":[4,4,0],
+"elem_registers.html":[4,5],
+"elem_registers.html#elem_cluster":[4,5,0],
+"elem_registers.html#elem_enumeratedValue":[4,5,6],
+"elem_registers.html#elem_enumeratedValues":[4,5,5],
+"elem_registers.html#elem_field":[4,5,4],
+"elem_registers.html#elem_fields":[4,5,3],
+"elem_registers.html#elem_register":[4,5,1],
+"elem_registers.html#elem_writeConstraint":[4,5,2],
+"elem_special.html":[4,6],
+"elem_special.html#dimElementGroup_gr":[4,6,0],
+"elem_special.html#elem_dimArrayIndex":[4,6,0,0],
+"elem_special.html#registerPropertiesGroup_gr":[4,6,1],
+"index.html":[0],
+"index.html":[],
+"pages.html":[],
+"schema_1_2_gr.html":[5],
+"svd_Example_pg.html":[4,1],
+"svd_Format_pg.html":[4],
+"svd_SVDConv_pg.html":[3],
+"svd_revisionHistory.html":[1],
+"svd_validate_file_pg.html":[2],
+"svd_xml_conventions_gr.html":[4,0],
+"svd_xml_conventions_gr.html#Comments":[4,0,2],
+"svd_xml_conventions_gr.html#Constants":[4,0,1],
+"svd_xml_conventions_gr.html#Names":[4,0,0],
+"svd_xml_conventions_gr.html#_":[4,0,3]
+};
diff --git a/docs/SVD/html/open.png b/docs/SVD/html/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/docs/SVD/html/open.png
Binary files differ
diff --git a/docs/SVD/html/pages.html b/docs/SVD/html/pages.html
new file mode 100644
index 0000000..44a432d
--- /dev/null
+++ b/docs/SVD/html/pages.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Usage and Description</title>
+<title>CMSIS-SVD: Usage and Description</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pages.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Usage and Description</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="svd_revisionHistory.html" target="_self">Revision History</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="svd_validate_file_pg.html" target="_self">SVD File Validation and Usage</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="svd_SVDConv_pg.html" target="_self">SVDConv.exe</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img id="arr_3_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><a class="el" href="svd_Format_pg.html" target="_self">SVD Description (*.svd) Format</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="svd_xml_conventions_gr.html" target="_self">File Conventions</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="svd_Example_pg.html" target="_self">SVD File Example</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="elem_device.html" target="_self">/device element</a></td><td class="desc"></td></tr>
+<tr id="row_3_3_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="elem_cpu.html" target="_self">/device/cpu element</a></td><td class="desc"></td></tr>
+<tr id="row_3_4_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="elem_peripherals.html" target="_self">/device/peripherals element</a></td><td class="desc"></td></tr>
+<tr id="row_3_5_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="elem_registers.html" target="_self">/device/peripherals/peripheral/registers element</a></td><td class="desc"></td></tr>
+<tr id="row_3_6_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="elem_special.html" target="_self">Special Elements</a></td><td class="desc"></td></tr>
+<tr id="row_4_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="schema_1_2_gr.html" target="_self">CMSIS-SVD Schema File</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/printComponentTabs.js b/docs/SVD/html/printComponentTabs.js
new file mode 100644
index 0000000..8afdb6b
--- /dev/null
+++ b/docs/SVD/html/printComponentTabs.js
@@ -0,0 +1,39 @@
+var strgURL = location.pathname; // path of current component
+
+// constuctor for the array of objects
+function tabElement(id, folderName, tabTxt ) {
+ this.id = id; // elementID as needed in html;
+ this.folderName = folderName; // folder name of the component
+ this.tabTxt = tabTxt; // Text displayed as menu on the web
+ this.currentListItem = '<li id="' + this.id + '" class="current"> <a href="../..' + this.folderName + 'index.html"><span>' + this.tabTxt + '</span></a></li>';
+ this.listItem = '<li id="' + this.id + '"> <a href="../..' + this.folderName + 'index.html"><span>' + this.tabTxt + '</span></a></li>';
+};
+
+// array of objects
+var arr = [];
+
+// fill array
+ arr.push( new tabElement( "GEN", "/General/html/", "General") );
+ arr.push( new tabElement( "CORE_A", "/Core_A/html/", "CMSIS-Core(A)") );
+ arr.push( new tabElement( "CORE_M", "/Core/html/", "CMSIS-Core(M)") );
+ arr.push( new tabElement( "DRV", "/Driver/html/", "Driver") );
+ arr.push( new tabElement( "DSP", "/DSP/html/", "DSP") );
+ arr.push( new tabElement( "NN", "/NN/html/", "NN") );
+ arr.push( new tabElement( "RTOSv1", "/RTOS/html/", "RTOS v1") );
+ arr.push( new tabElement( "RTOSv2", "/RTOS2/html/", "RTOS v2") );
+ arr.push( new tabElement( "PACK", "/Pack/html/", "Pack") );
+ arr.push( new tabElement( "SVD", "/SVD/html/", "SVD") );
+ arr.push( new tabElement( "DAP", "/DAP/html/", "DAP") );
+ arr.push( new tabElement( "ZONE", "/Zone/html/", "Zone") );
+
+// write tabs
+// called from the header file.
+function writeComponentTabs() {
+ for ( var i=0; i < arr.length; i++ ) {
+ if (strgURL.search(arr[i].folderName) > 0) { // if this is the current folder
+ document.write(arr[i].currentListItem); // then print and hightlight the tab
+ } else {
+ document.write(arr[i].listItem); // else, print the tab
+ }
+ }
+};
diff --git a/docs/SVD/html/resize.js b/docs/SVD/html/resize.js
new file mode 100644
index 0000000..304fcb6
--- /dev/null
+++ b/docs/SVD/html/resize.js
@@ -0,0 +1,97 @@
+var cookie_namespace = 'doxygen';
+var sidenav,navtree,content,header;
+
+function readCookie(cookie)
+{
+ var myCookie = cookie_namespace+"_"+cookie+"=";
+ if (document.cookie)
+ {
+ var index = document.cookie.indexOf(myCookie);
+ if (index != -1)
+ {
+ var valStart = index + myCookie.length;
+ var valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1)
+ {
+ valEnd = document.cookie.length;
+ }
+ var val = document.cookie.substring(valStart, valEnd);
+ return val;
+ }
+ }
+ return 0;
+}
+
+function writeCookie(cookie, val, expiration)
+{
+ if (val==undefined) return;
+ if (expiration == null)
+ {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
+ }
+ document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
+}
+
+function resizeWidth()
+{
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).outerWidth();
+ content.css({marginLeft:parseInt(sidenavWidth)+"px"});
+ writeCookie('width',sidenavWidth, null);
+}
+
+function restoreWidth(navWidth)
+{
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+6+"px"});
+ sidenav.css({width:navWidth + "px"});
+}
+
+function resizeHeight()
+{
+ var headerHeight = header.outerHeight();
+ var footerHeight = footer.outerHeight();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ content.css({height:windowHeight + "px"});
+ navtree.css({height:windowHeight + "px"});
+ sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
+}
+
+function initResizable()
+{
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(window).resize(function() { resizeHeight(); });
+ var width = readCookie('width');
+ if (width) { restoreWidth(width); } else { resizeWidth(); }
+ resizeHeight();
+ var url = location.href;
+ var i=url.indexOf("#");
+ if (i>=0) window.location.hash=url.substr(i);
+ var _preventDefault = function(evt) { evt.preventDefault(); };
+ $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+ $(document).bind('touchmove',function(e){
+ var device = navigator.userAgent.toLowerCase();
+ var ios = device.match(/(iphone|ipod|ipad)/);
+ if (ios) {
+ try {
+ var target = e.target;
+ while (target) {
+ if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
+ target = target.parentNode;
+ }
+ e.preventDefault();
+ } catch(err) {
+ e.preventDefault();
+ }
+ }
+ });
+}
+
+
diff --git a/docs/SVD/html/schema_1_2_gr.html b/docs/SVD/html/schema_1_2_gr.html
new file mode 100644
index 0000000..faff623
--- /dev/null
+++ b/docs/SVD/html/schema_1_2_gr.html
@@ -0,0 +1,775 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>CMSIS-SVD Schema File</title>
+<title>CMSIS-SVD: CMSIS-SVD Schema File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('schema_1_2_gr.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">CMSIS-SVD Schema File </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><pre class="fragment">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+
+ Copyright (c) 2013-2016 ARM Limited. All rights reserved.
+
+ SPDX-License-Identifier: Apache-2.0
+
+ 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
+
+ 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.
+
+ $Date: 23. September 2016
+ $Revision: 1.3.3
+
+ Version 1.3.3:
+ - update file header to Apache 2.0 License
+ - add dimableIdentifierType, as a copy of previous identifierType adding "%s",
+ - update identifierType to only allow names without %s included.
+ - remove enumerationNameType.
+ - add headerEnumName to enumerationType and to dimArrayIndexType for peripheral arrays
+ overwriting hierarchically generated names
+ - add dimName to dimElementGroup. Only valid in &lt;cluster&gt; context, ignored otherwise.
+
+ Version 1.3.2:
+ adding dimIndexArray to peripheral-, cluster- and register-array to describe
+ enumeration of array indices.
+
+ Version 1.3.1:
+ fixed peripheral name element type to identifierType to support %s for peripheral arrays
+ added optional protection element to addressBlockType and added p=privileged
+
+ Version 1.3:
+ added dim to peripherals to describe an array of peripherals.
+ added nesting of clusters to support hierarchical register structures.
+ added protection element as part of the registerPropertiesGroup indicating
+ special permissions are required for accessing a register.
+ CPU Section extended with description of the Secure Attribution Unit.
+
+ Version 1.2:
+ Cortex-M7 support items have been added as optional tags for the device header file generation:
+ fpuDP, icachePresent, dcachePresent, itcmPresent, dtcmPresent
+
+ Version 1.1:
+ For backward compatibility all additional tags have been made optional.
+ Extensions may be mandatory for successful device header file generation
+ Other changes are related to some restructuring of the schema.
+
+ Note that the memory section has been removed since this would limit the
+ reuse of descriptions for a series of devices.
+ --&gt;
+
+&lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.3"&gt;
+ &lt;!-- stringType requires a none empty string of a least one character length --&gt;
+ &lt;xs:simpleType name="stringType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:minLength value="1"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+
+ &lt;xs:simpleType name="descriptionStringType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]*" /&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+
+ &lt;!-- cpuType specifies a selection of Cortex-M and Secure-Cores. This list will get extended as new processors are released --&gt;
+ &lt;xs:simpleType name="cpuNameType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="CM0"/&gt;
+ &lt;xs:enumeration value="CM0PLUS"/&gt;
+ &lt;xs:enumeration value="CM0+"/&gt;
+ &lt;xs:enumeration value="CM1"/&gt;
+ &lt;xs:enumeration value="SC000"/&gt;
+ &lt;xs:enumeration value="CM23"/&gt;
+ &lt;xs:enumeration value="CM3"/&gt;
+ &lt;xs:enumeration value="CM33"/&gt;
+ &lt;xs:enumeration value="SC300"/&gt;
+ &lt;xs:enumeration value="CM4"/&gt;
+ &lt;xs:enumeration value="CM7"/&gt;
+ &lt;xs:enumeration value="ARMV8MML"/&gt;
+ &lt;xs:enumeration value="ARMV8MBL"/&gt;
+ &lt;xs:enumeration value="CA5"/&gt;
+ &lt;xs:enumeration value="CA7"/&gt;
+ &lt;xs:enumeration value="CA8"/&gt;
+ &lt;xs:enumeration value="CA9"/&gt;
+ &lt;xs:enumeration value="CA15"/&gt;
+ &lt;xs:enumeration value="CA17"/&gt;
+ &lt;xs:enumeration value="CA53"/&gt;
+ &lt;xs:enumeration value="CA57"/&gt;
+ &lt;xs:enumeration value="CA72"/&gt;
+ &lt;xs:enumeration value="other"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- revisionType specifies the CPU revision format as defined by ARM (rNpM) --&gt;
+ &lt;xs:simpleType name="revisionType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:pattern value="r[0-9]*p[0-9]*"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- EndianType pre-defines the tokens for specifying the endianess of the device --&gt;
+ &lt;xs:simpleType name="endianType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="little"/&gt;
+ &lt;xs:enumeration value="big"/&gt;
+ &lt;xs:enumeration value="selectable"/&gt;
+ &lt;xs:enumeration value="other"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- dataType pre-defines the tokens in line with CMSIS data type definitions --&gt;
+ &lt;xs:simpleType name="dataTypeType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="uint8_t"/&gt;
+ &lt;xs:enumeration value="uint16_t"/&gt;
+ &lt;xs:enumeration value="uint32_t"/&gt;
+ &lt;xs:enumeration value="uint64_t"/&gt;
+ &lt;xs:enumeration value="int8_t"/&gt;
+ &lt;xs:enumeration value="int16_t"/&gt;
+ &lt;xs:enumeration value="int32_t"/&gt;
+ &lt;xs:enumeration value="int64_t"/&gt;
+ &lt;xs:enumeration value="uint8_t *"/&gt;
+ &lt;xs:enumeration value="uint16_t *"/&gt;
+ &lt;xs:enumeration value="uint32_t *"/&gt;
+ &lt;xs:enumeration value="uint64_t *"/&gt;
+ &lt;xs:enumeration value="int8_t *"/&gt;
+ &lt;xs:enumeration value="int16_t *"/&gt;
+ &lt;xs:enumeration value="int32_t *"/&gt;
+ &lt;xs:enumeration value="int64_t *"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- nvicPrioBitsType specifies the integer value range for the number of bits used in NVIC to encode priority levels --&gt;
+ &lt;xs:simpleType name="nvicPrioBitsType"&gt;
+ &lt;xs:restriction base="xs:integer"&gt;
+ &lt;xs:minInclusive value="2"/&gt;
+ &lt;xs:maxInclusive value="8"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- dimableIdentifierType specifies the subset and sequence of characters used for specifying identifiers that may contain %s from dim. --&gt;
+ &lt;!-- this is particularly important as these are used in ANSI C Structures during the device header file generation --&gt;
+ &lt;xs:simpleType name="dimableIdentifierType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:pattern value="((%s)|(%s)[_A-Za-z]{1}[_A-Za-z0-9]*)|([_A-Za-z]{1}[_A-Za-z0-9]*(\[%s\])?)|([_A-Za-z]{1}[_A-Za-z0-9]*(%s)?[_A-Za-z0-9]*)"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- identifierType specifies the subset and sequence of characters used for specifying identifiers that must not contain %s from dim. --&gt;
+ &lt;!-- this is particularly important as these are used in ANSI C Structures during the device header file generation --&gt;
+ &lt;xs:simpleType name="identifierType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:pattern value="[_A-Za-z0-9]*"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- V1.3: Protection Access Attribute Strings --&gt;
+ &lt;xs:simpleType name="protectionStringType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;!-- s = Secure --&gt;
+ &lt;!-- n = Non-secure --&gt;
+ &lt;!-- p = Privileged --&gt;
+ &lt;xs:pattern value="[snp]"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- V1.3: SAU Access Type --&gt;
+ &lt;xs:simpleType name="sauAccessType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;!-- c = non-secure Callable / Secure --&gt;
+ &lt;!-- n = Non-secure --&gt;
+ &lt;xs:pattern value="[cn]"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+
+ &lt;!-- dimIndexType specifies the subset and sequence of characters used for specifying the sequence of indices in register arrays --&gt;
+ &lt;xs:simpleType name="dimIndexType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:pattern value="[0-9]+\-[0-9]+|[A-Z]-[A-Z]|[_0-9a-zA-Z]+(,\s*[_0-9a-zA-Z]+)+"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- scaledNonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimal format --&gt;
+ &lt;xs:simpleType name="scaledNonNegativeInteger"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:pattern value="[+]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- enumeratedValueDataType specifies the number formats for the values in enumeratedValues --&gt;
+ &lt;xs:simpleType name="enumeratedValueDataType"&gt;
+ &lt;xs:restriction base="xs:string"&gt;
+ &lt;xs:pattern value="[+]?(((0x|0X)[0-9a-fA-F]+)|([0-9]+)|((#|0b)[01xX]+))"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- accessType specfies the pre-defined tokens for the available accesses --&gt;
+ &lt;xs:simpleType name="accessType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="read-only"/&gt;
+ &lt;xs:enumeration value="write-only"/&gt;
+ &lt;xs:enumeration value="read-write"/&gt;
+ &lt;xs:enumeration value="writeOnce"/&gt;
+ &lt;xs:enumeration value="read-writeOnce"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- modifiedWriteValuesType specifies the pre-defined tokens for the write side effects --&gt;
+ &lt;xs:simpleType name="modifiedWriteValuesType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="oneToClear"/&gt;
+ &lt;xs:enumeration value="oneToSet"/&gt;
+ &lt;xs:enumeration value="oneToToggle"/&gt;
+ &lt;xs:enumeration value="zeroToClear"/&gt;
+ &lt;xs:enumeration value="zeroToSet"/&gt;
+ &lt;xs:enumeration value="zeroToToggle"/&gt;
+ &lt;xs:enumeration value="clear"/&gt;
+ &lt;xs:enumeration value="set"/&gt;
+ &lt;xs:enumeration value="modify"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- readAction type specifies the pre-defined tokens for read side effects --&gt;
+ &lt;xs:simpleType name="readActionType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="clear"/&gt;
+ &lt;xs:enumeration value="set"/&gt;
+ &lt;xs:enumeration value="modify"/&gt;
+ &lt;xs:enumeration value="modifyExternal"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- enumUsageType specifies the pre-defined tokens for selecting what access types an enumeratedValues set is associated with --&gt;
+ &lt;xs:simpleType name="enumUsageType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="read"/&gt;
+ &lt;xs:enumeration value="write"/&gt;
+ &lt;xs:enumeration value="read-write"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- bitRangeType specifies the bit numbers to be restricted values from 0 - 69 --&gt;
+ &lt;xs:simpleType name="bitRangeType"&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:pattern value="\[([0-4])?[0-9]:([0-4])?[0-9]\]"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;!-- writeContraintType specifies how to describe the restriction of the allowed values that can be written to a resource --&gt;
+ &lt;xs:complexType name="writeConstraintType"&gt;
+ &lt;xs:choice&gt;
+ &lt;xs:element name="writeAsRead" type="xs:boolean"/&gt;
+ &lt;xs:element name="useEnumeratedValues" type="xs:boolean"/&gt;
+ &lt;xs:element name="range"&gt;
+ &lt;xs:complexType&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="minimum" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="maximum" type="scaledNonNegativeInteger"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+ &lt;/xs:element&gt;
+ &lt;/xs:choice&gt;
+ &lt;/xs:complexType&gt;
+ &lt;!-- addressBlockType specifies the elements to describe an address block --&gt;
+ &lt;xs:complexType name="addressBlockType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="offset" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="size" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="usage"&gt;
+ &lt;xs:simpleType&gt;
+ &lt;xs:restriction base="xs:token"&gt;
+ &lt;xs:enumeration value="registers"/&gt;
+ &lt;xs:enumeration value="buffer"/&gt;
+ &lt;xs:enumeration value="reserved"/&gt;
+ &lt;/xs:restriction&gt;
+ &lt;/xs:simpleType&gt;
+ &lt;/xs:element&gt;
+ &lt;!-- Version 1.3.2: optional access protection for an address block s=secure n=non-secure p=privileged --&gt;
+ &lt;xs:element name="protection" type="protectionStringType" minOccurs="0"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+ &lt;!-- interruptType specifies how to describe an interrupt associated with a peripheral --&gt;
+ &lt;xs:complexType name="interruptType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="name" type="stringType"/&gt;
+ &lt;xs:element name="description" type="xs:string" minOccurs="0"/&gt;
+ &lt;xs:element name="value" type="xs:integer"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+ &lt;!-- register properties group specifies register size, access permission and reset value
+ this is used in multiple locations. Settings are inherited downstream. --&gt;
+ &lt;xs:group name="registerPropertiesGroup"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="size" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
+ &lt;xs:element name="access" type="accessType" minOccurs="0"/&gt;
+ &lt;!-- V 1.3: extended register access protection --&gt;
+ &lt;xs:element name="protection" type="protectionStringType" minOccurs="0"/&gt;
+ &lt;xs:element name="resetValue" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
+ &lt;xs:element name="resetMask" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:group&gt;
+ &lt;!-- bitRangeLsbMsbStyle specifies the bit position of a field within a register
+ by specifying the least significant and the most significant bit position --&gt;
+ &lt;xs:group name="bitRangeLsbMsbStyle"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="lsb" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="msb" type="scaledNonNegativeInteger"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:group&gt;
+ &lt;!-- bitRangeOffsetWidthStyle specifies the bit position of a field within a register
+ by specifying the least significant bit position and the bitWidth of the field --&gt;
+ &lt;xs:group name="bitRangeOffsetWidthStyle"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="bitOffset" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:group&gt;
+
+ &lt;!-- dimElementGroup specifies the number of array elements (dim), the address offset
+ between to consecutive array elements and an a comma seperated list of strings
+ being used for identifying each element in the array --&gt;
+ &lt;xs:group name="dimElementGroup"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="dim" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="dimIncrement" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="dimIndex" type="dimIndexType" minOccurs="0"/&gt;
+ &lt;xs:element name="dimName" type="identifierType" minOccurs="0"/&gt;
+ &lt;xs:element name="dimArrayIndex" type="dimArrayIndexType" minOccurs="0"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:group&gt;
+
+ &lt;xs:complexType name="cpuType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;!-- V1.1: ARM processor name: Cortex-Mx / SCxxx --&gt;
+ &lt;xs:element name="name" type="cpuNameType"/&gt;
+ &lt;!-- V1.1: ARM defined revision of the cpu --&gt;
+ &lt;xs:element name="revision" type="revisionType"/&gt;
+ &lt;!-- V1.1: Endian specifies the endianess of the processor/device --&gt;
+ &lt;xs:element name="endian" type="endianType"/&gt;
+ &lt;!-- V1.1: mpuPresent specifies whether or not a memory protection unit is physically present --&gt;
+ &lt;xs:element name="mpuPresent" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.1: fpuPresent specifies whether or not a floating point hardware unit is physically present --&gt;
+ &lt;xs:element name="fpuPresent" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.2: fpuDP specifies a double precision floating point hardware unit is physically present--&gt;
+ &lt;xs:element name="fpuDP" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.2: icachePresent specifies that an instruction cache is physically present--&gt;
+ &lt;xs:element name="icachePresent" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.2: dcachePresent specifies that a data cache is physically present--&gt;
+ &lt;xs:element name="dcachePresent" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.2: itcmPresent specifies that an instruction tightly coupled memory is physically present--&gt;
+ &lt;xs:element name="itcmPresent" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.2: dtcmPresent specifies that an data tightly coupled memory is physically present--&gt;
+ &lt;xs:element name="dtcmPresent" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.1: vtorPresent is used for Cortex-M0+ based devices only. It indicates whether the Vector --&gt;
+ &lt;!-- Table Offset Register is implemented in the device or not --&gt;
+ &lt;xs:element name="vtorPresent" type="xs:boolean" minOccurs="0"/&gt;
+ &lt;!-- V1.1: nvicPrioBits specifies the number of bits used by the Nested Vectored Interrupt Controller --&gt;
+ &lt;!-- for defining the priority level = # priority levels --&gt;
+ &lt;xs:element name="nvicPrioBits" type="scaledNonNegativeInteger"/&gt;
+ &lt;!-- V1.1: vendorSystickConfig is set true if a custom system timer is implemented in the device --&gt;
+ &lt;!-- instead of the ARM specified SysTickTimer --&gt;
+ &lt;xs:element name="vendorSystickConfig" type="xs:boolean"/&gt;
+ &lt;!-- V1.3: reports the total number of interrupts implemented by the device (optional) --&gt;
+ &lt;xs:element name="deviceNumInterrupts" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
+ &lt;!-- V1.3: sauRegions specifies the available number of address regions --&gt;
+ &lt;!-- if not specified a value of zero is assumed --&gt;
+ &lt;xs:element name="sauNumRegions" type="scaledNonNegativeInteger" minOccurs="0"/&gt;
+ &lt;!-- V1.3: SAU Regions Configuration (if fully or partially predefined) --&gt;
+ &lt;xs:element name="sauRegionsConfig" minOccurs="0"&gt;
+ &lt;xs:complexType&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="region" minOccurs="0" maxOccurs="unbounded"&gt;
+ &lt;!-- addressBlockType specifies the elements to describe an address block --&gt;
+ &lt;xs:complexType&gt;
+ &lt;xs:sequence minOccurs="1" maxOccurs="unbounded"&gt;
+ &lt;xs:element name="base" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="limit" type="scaledNonNegativeInteger"/&gt;
+ &lt;xs:element name="access" type="sauAccessType"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/&gt;
+ &lt;xs:attribute name="name" type="xs:string" use="optional"/&gt;
+ &lt;/xs:complexType&gt;
+ &lt;/xs:element&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/&gt;
+ &lt;xs:attribute name="protectionWhenDisabled" type="protectionStringType" use="optional" default="s"/&gt;
+ &lt;/xs:complexType&gt;
+ &lt;/xs:element&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;xs:complexType name="enumeratedValueType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;!-- name is a ANSI C indentifier representing the value (C Enumeration) --&gt;
+ &lt;xs:element name="name" type="identifierType"/&gt;
+ &lt;!-- description contains the details about the semantics/behavior specified by this value --&gt;
+ &lt;xs:element name="description" type="stringType" minOccurs="0"/&gt;
+ &lt;xs:choice&gt;
+ &lt;xs:element name="value" type="enumeratedValueDataType"/&gt;
+ &lt;!-- isDefault specifies the name and description for all values that are not
+ specifically described individually --&gt;
+ &lt;xs:element name="isDefault" type="xs:boolean"/&gt;
+ &lt;/xs:choice&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;xs:complexType name="enumerationType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;!-- name specfies a reference to this enumeratedValues section for reuse purposes
+ this name does not appear in the System Viewer nor the Header File. --&gt;
+ &lt;xs:element name="name" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- overrides the hierarchical enumeration type in the device header file. User is responsible for uniqueness across description --&gt;
+ &lt;xs:element name="headerEnumName" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- usage specifies whether this enumeration is to be used for read or write or
+ (read and write) accesses --&gt;
+ &lt;xs:element name="usage" type="enumUsageType" minOccurs="0"/&gt;
+ &lt;!-- enumeratedValue derivedFrom=&lt;identifierType&gt; --&gt;
+ &lt;xs:element name="enumeratedValue" type="enumeratedValueType" minOccurs="1" maxOccurs="unbounded"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="derivedFrom" type="identifierType" use="optional"/&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;xs:complexType name="dimArrayIndexType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="headerEnumName" type="identifierType" minOccurs="0"/&gt;
+ &lt;xs:element name="enumeratedValue" type="enumeratedValueType" minOccurs="1" maxOccurs="unbounded"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;xs:complexType name="fieldType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:group ref="dimElementGroup" minOccurs="0"/&gt;
+ &lt;!-- name specifies a field's name. The System Viewer and the device header file will
+ use the name of the field as identifier --&gt;
+ &lt;xs:element name="name" type="dimableIdentifierType"/&gt;
+ &lt;!-- description contains reference manual level information about the function and
+ options of a field --&gt;
+ &lt;xs:element name="description" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- alternative specifications of the bit position of the field within the register --&gt;
+ &lt;xs:choice minOccurs="1" maxOccurs="1"&gt;
+ &lt;!-- bit field described by lsb followed by msb tag --&gt;
+ &lt;xs:group ref="bitRangeLsbMsbStyle"/&gt;
+ &lt;!-- bit field described by bit offset relative to Bit0 + bit width of field --&gt;
+ &lt;xs:group ref="bitRangeOffsetWidthStyle"/&gt;
+ &lt;!-- bit field described by [&lt;msb&gt;:&lt;lsb&gt;] --&gt;
+ &lt;xs:element name="bitRange" type="bitRangeType"/&gt;
+ &lt;/xs:choice&gt;
+ &lt;!-- access describes the predefined permissions for the field. --&gt;
+ &lt;xs:element name="access" type="accessType" minOccurs="0"/&gt;
+ &lt;!-- predefined description of write side effects --&gt;
+ &lt;xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/&gt;
+ &lt;!-- writeContstraint specifies the subrange of allowed values --&gt;
+ &lt;xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/&gt;
+ &lt;!-- readAction specifies the read side effects. --&gt;
+ &lt;xs:element name="readAction" type="readActionType" minOccurs="0"/&gt;
+ &lt;!-- enumeratedValues derivedFrom=&lt;identifierType&gt; --&gt;
+ &lt;xs:element name="enumeratedValues" type="enumerationType" minOccurs="0" maxOccurs="2"&gt;
+ &lt;/xs:element&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;xs:complexType name="fieldsType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;!-- field derivedFrom=&lt;identifierType&gt; --&gt;
+ &lt;xs:element name="field" type="fieldType" minOccurs="1" maxOccurs="unbounded"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;xs:complexType name="registerType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:group ref="dimElementGroup" minOccurs="0"/&gt;
+ &lt;!-- name specifies the name of the register. The register name is used by System Viewer and
+ device header file generator to represent a register --&gt;
+ &lt;xs:element name="name" type="dimableIdentifierType"/&gt;
+ &lt;!-- display name specifies a register name without the restritions of an ANSIS C identifier.
+ The use of this tag is discouraged because it does not allow consistency between
+ the System View and the device header file. --&gt;
+ &lt;xs:element name="displayName" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- description contains a reference manual level description about the register and it's purpose --&gt;
+ &lt;xs:element name="description" type="stringType" minOccurs="0"/&gt;
+ &lt;xs:choice&gt;
+ &lt;!-- alternateGroup specifies the identifier of the subgroup a register belongs to.
+ This is useful if a register has a different description per mode but a single name --&gt;
+ &lt;xs:element name="alternateGroup" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: alternateRegister specifies an alternate register description for an address that is
+ already fully described. In this case the register name must be unique within the peripheral --&gt;
+ &lt;xs:element name="alternateRegister" type="dimableIdentifierType" minOccurs="0"/&gt;
+ &lt;/xs:choice&gt;
+ &lt;!-- addressOffset describes the address of the register relative to the baseOffset of the peripheral --&gt;
+ &lt;xs:element name="addressOffset" type="scaledNonNegativeInteger"/&gt;
+ &lt;!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value. These default values are inherited to all fields contained in this register --&gt;
+ &lt;xs:group ref="registerPropertiesGroup" minOccurs="0"/&gt;
+ &lt;!-- V1.1: dataType specifies a CMSIS compliant native dataType for a register (i.e. signed, unsigned, pointer) --&gt;
+ &lt;xs:element name="dataType" type="dataTypeType" minOccurs="0"/&gt;
+ &lt;!-- modifiedWriteValues specifies the write side effects --&gt;
+ &lt;xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/&gt;
+ &lt;!-- writeConstraint specifies the subset of allowed write values --&gt;
+ &lt;xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/&gt;
+ &lt;!-- readAcction specifies the read side effects --&gt;
+ &lt;xs:element name="readAction" type="readActionType" minOccurs="0"/&gt;
+ &lt;!-- fields section contains all fields that belong to this register --&gt;
+ &lt;xs:element name="fields" type="fieldsType" minOccurs="0" maxOccurs="1"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;!-- V1.1: A cluster is a set of registers that are composed into a C data structure in the device header file --&gt;
+ &lt;xs:complexType name="clusterType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:group ref="dimElementGroup" minOccurs="0"/&gt;
+ &lt;xs:element name="name" type="dimableIdentifierType"/&gt;
+ &lt;xs:element name="description" type="xs:string"/&gt;
+ &lt;!-- V1.1: alternateCluster specifies an alternative description for a cluster address range that is
+ already fully described. In this case the cluster name must be unique within the peripheral --&gt;
+ &lt;xs:element name="alternateCluster" type="dimableIdentifierType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: headerStructName specifies the name for the cluster structure typedef
+ used in the device header generation instead of the cluster name --&gt;
+ &lt;xs:element name="headerStructName" type="identifierType" minOccurs="0"/&gt;
+ &lt;xs:element name="addressOffset" type="scaledNonNegativeInteger"/&gt;
+ &lt;!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value. These default values are inherited to all registers contained in this peripheral --&gt;
+ &lt;xs:group ref="registerPropertiesGroup" minOccurs="0"/&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:choice minOccurs="1" maxOccurs="unbounded"&gt;
+ &lt;xs:element name="register" type="registerType" minOccurs="0" maxOccurs="unbounded"/&gt;
+ &lt;!-- 1.3: nesting of cluster is supported --&gt;
+ &lt;xs:element name="cluster" type="clusterType" minOccurs="0" maxOccurs="unbounded"/&gt;
+ &lt;/xs:choice&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;!-- the registers section can have an arbitrary list of cluster and register sections --&gt;
+ &lt;xs:complexType name="registersType"&gt;
+ &lt;xs:choice minOccurs="1" maxOccurs="unbounded"&gt;
+ &lt;xs:element name="cluster" type="clusterType"/&gt;
+ &lt;xs:element name="register" type="registerType"/&gt;
+ &lt;/xs:choice&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;xs:complexType name="peripheralType"&gt;
+ &lt;xs:sequence&gt;
+ &lt;!-- 1.3: specify uni-dimensional array of peripheral - requires name="&lt;name&gt;[%s]" --&gt;
+ &lt;xs:group ref="dimElementGroup" minOccurs="0"/&gt;
+ &lt;!-- name specifies the name of a peripheral. This name is used for the System View and device header file --&gt;
+ &lt;xs:element name="name" type="dimableIdentifierType"/&gt;
+ &lt;!-- version specifies the version of the peripheral descriptions --&gt;
+ &lt;xs:element name="version" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- description provides a high level functional description of the peripheral --&gt;
+ &lt;xs:element name="description" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: alternatePeripheral specifies an alternative description for an address range that is
+ already fully by a peripheral described. In this case the peripheral name must be unique within the device description --&gt;
+ &lt;xs:element name="alternatePeripheral" type="dimableIdentifierType" minOccurs="0"/&gt;
+ &lt;!-- groupName assigns this peripheral to a group of peripherals. This is only used bye the System View --&gt;
+ &lt;xs:element name="groupName" type="xs:Name" minOccurs="0"/&gt;
+ &lt;!-- prependToName specifies a prefix that is placed in front of each register name of this peripheral.
+ The device header file will show the registers in a C-Struct of the peripheral without the prefix. --&gt;
+ &lt;xs:element name="prependToName" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- appendToName is a postfix that is appended to each register name of this peripheral. The device header
+ file will sho the registers in a C-Struct of the peripheral without the postfix --&gt;
+ &lt;xs:element name="appendToName" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: headerStructName specifies the name for the peripheral structure typedef
+ used in the device header generation instead of the peripheral name --&gt;
+ &lt;xs:element name="headerStructName" type="dimableIdentifierType" minOccurs="0"/&gt;
+ &lt;!-- disableCondition contains a logical expression based on constants and register or bit-field values
+ if the condition is evaluated to true, the peripheral display will be disabled --&gt;
+ &lt;xs:element name="disableCondition" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- baseAddress specifies the absolute base address of a peripheral. For derived peripherals it is mandatory
+ to specify a baseAddress. --&gt;
+ &lt;xs:element name="baseAddress" type="scaledNonNegativeInteger"/&gt;
+ &lt;!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value. These default values are inherited to all registers contained in this peripheral --&gt;
+ &lt;xs:group ref="registerPropertiesGroup" minOccurs="0"/&gt;
+ &lt;!-- addressBlock specifies one or more address ranges that are assigned exclusively to this peripheral.
+ derived peripherals may have no addressBlock, however none-derived peripherals are required to specify
+ at least one address block --&gt;
+ &lt;xs:element name="addressBlock" type="addressBlockType" minOccurs="0" maxOccurs="unbounded"/&gt;
+ &lt;!-- interrupt specifies can specify one or more interrtupts by name, description and value --&gt;
+ &lt;xs:element name="interrupt" type="interruptType" minOccurs="0" maxOccurs="unbounded"/&gt;
+ &lt;!-- registers section contains all registers owned by the peripheral. In case a peripheral gets derived it does
+ not have its own registers section, hence this section is optional. A unique peripheral without a
+ registers section is not allowed --&gt;
+ &lt;xs:element name="registers" type="registersType" minOccurs="0" maxOccurs="1"&gt;
+ &lt;/xs:element&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/&gt;
+ &lt;/xs:complexType&gt;
+
+ &lt;!-- ==================================================== --&gt;
+ &lt;!-- The top level element of a description is the device --&gt;
+ &lt;!-- ==================================================== --&gt;
+ &lt;xs:element name="device" nillable="true"&gt;
+ &lt;xs:complexType&gt;
+ &lt;xs:sequence&gt;
+ &lt;!-- V1.1: Vendor Name --&gt;
+ &lt;xs:element name="vendor" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: Vendor ID - a short name for referring to the vendor (e.g. Texas Instruments = TI) --&gt;
+ &lt;xs:element name="vendorID" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- name specifies the device name being described --&gt;
+ &lt;xs:element name="name" type="identifierType"/&gt;
+ &lt;!-- V1.1: series specifies the device series or family name --&gt;
+ &lt;xs:element name="series" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- version specifies the version of the device description --&gt;
+ &lt;xs:element name="version" type="stringType"/&gt;
+ &lt;!-- description is a string describing the device features (e.g. memory size, peripherals, etc.) --&gt;
+ &lt;xs:element name="description" type="stringType"/&gt;
+ &lt;!-- V1.1: licenseText specifies the file header section to be included in any derived file --&gt;
+ &lt;xs:element name="licenseText" type="stringType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: cpu specifies the details of the processor included in the device --&gt;
+ &lt;xs:element name="cpu" type="cpuType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: the tag specifies the filename without extension of the CMSIS System Device include file.
+ This tag is used by the header file generator for customizing the include statement referencing the
+ CMSIS system file within the CMSIS device header file. By default the filename is "system_&lt;device.name&gt;"
+ In cases a device series shares a single system header file, the name of the series shall be used
+ instead of the individual device name. --&gt;
+ &lt;xs:element name="headerSystemFilename" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- V1.1: headerDefinitionPrefix specifies the string being prepended to all names of types defined in
+ generated device header file --&gt;
+ &lt;xs:element name="headerDefinitionsPrefix" type="identifierType" minOccurs="0"/&gt;
+ &lt;!-- addressUnitBits specifies the size of the minimal addressable unit in bits --&gt;
+ &lt;xs:element name="addressUnitBits" type="scaledNonNegativeInteger"/&gt;
+ &lt;!-- width specifies the number of bits for the maximum single transfer size allowed by the bus interface.
+ This sets the maximum size of a single register that can be defined for an address space --&gt;
+ &lt;xs:element name="width" type="scaledNonNegativeInteger"/&gt;
+ &lt;!-- registerPropertiesGroup elements specify the default values for register size, access permission and
+ reset value --&gt;
+ &lt;xs:group ref="registerPropertiesGroup" minOccurs="0"/&gt;
+
+ &lt;!-- peripherals is containing all peripherals --&gt;
+ &lt;xs:element name="peripherals"&gt;
+ &lt;xs:complexType&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:element name="peripheral" type="peripheralType" minOccurs="1" maxOccurs="unbounded"/&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+ &lt;/xs:element&gt;
+
+ &lt;!-- Vendor Extensions: this section captures custom extensions. This section will be ignored by default --&gt;
+ &lt;xs:element name="vendorExtensions" minOccurs="0" maxOccurs="1"&gt;
+ &lt;xs:complexType&gt;
+ &lt;xs:sequence&gt;
+ &lt;xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"&gt;
+ &lt;/xs:any&gt;
+ &lt;/xs:sequence&gt;
+ &lt;/xs:complexType&gt;
+ &lt;/xs:element&gt;
+ &lt;/xs:sequence&gt;
+ &lt;xs:attribute name="schemaVersion" type="xs:decimal" use="required"/&gt;
+ &lt;/xs:complexType&gt;
+ &lt;/xs:element&gt;
+&lt;/xs:schema&gt;
+
+&lt;!-- END OF FILE --&gt;</pre> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/all_0.html b/docs/SVD/html/search/all_0.html
new file mode 100644
index 0000000..17b6da8
--- /dev/null
+++ b/docs/SVD/html/search/all_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/all_0.js b/docs/SVD/html/search/all_0.js
new file mode 100644
index 0000000..967e520
--- /dev/null
+++ b/docs/SVD/html/search/all_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['cmsis_2dsvd_20schema_20file',['CMSIS-SVD Schema File',['../schema_1_2_gr.html',1,'']]]
+];
diff --git a/docs/SVD/html/search/all_1.html b/docs/SVD/html/search/all_1.html
new file mode 100644
index 0000000..e290644
--- /dev/null
+++ b/docs/SVD/html/search/all_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/all_1.js b/docs/SVD/html/search/all_1.js
new file mode 100644
index 0000000..713183b
--- /dev/null
+++ b/docs/SVD/html/search/all_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['file_20conventions',['File Conventions',['../svd_xml_conventions_gr.html',1,'svd_Format_pg']]]
+];
diff --git a/docs/SVD/html/search/all_2.html b/docs/SVD/html/search/all_2.html
new file mode 100644
index 0000000..95ded12
--- /dev/null
+++ b/docs/SVD/html/search/all_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/all_2.js b/docs/SVD/html/search/all_2.js
new file mode 100644
index 0000000..28a385d
--- /dev/null
+++ b/docs/SVD/html/search/all_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['revision_20history',['Revision History',['../svd_revisionHistory.html',1,'']]]
+];
diff --git a/docs/SVD/html/search/all_3.html b/docs/SVD/html/search/all_3.html
new file mode 100644
index 0000000..4d312d0
--- /dev/null
+++ b/docs/SVD/html/search/all_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/all_3.js b/docs/SVD/html/search/all_3.js
new file mode 100644
index 0000000..5af6f10
--- /dev/null
+++ b/docs/SVD/html/search/all_3.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['special_20elements',['Special Elements',['../elem_special.html',1,'svd_Format_pg']]],
+ ['system_20view_20description',['System View Description',['../index.html',1,'']]],
+ ['svd_20file_20example',['SVD File Example',['../svd_Example_pg.html',1,'svd_Format_pg']]],
+ ['svd_20description_20_28_2a_2esvd_29_20format',['SVD Description (*.svd) Format',['../svd_Format_pg.html',1,'']]],
+ ['svdconv_2eexe',['SVDConv.exe',['../svd_SVDConv_pg.html',1,'']]],
+ ['svd_20file_20validation_20and_20usage',['SVD File Validation and Usage',['../svd_validate_file_pg.html',1,'']]]
+];
diff --git a/docs/SVD/html/search/close.png b/docs/SVD/html/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/docs/SVD/html/search/close.png
Binary files differ
diff --git a/docs/SVD/html/search/mag_sel.png b/docs/SVD/html/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
--- /dev/null
+++ b/docs/SVD/html/search/mag_sel.png
Binary files differ
diff --git a/docs/SVD/html/search/nomatches.html b/docs/SVD/html/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/docs/SVD/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/pages_0.html b/docs/SVD/html/search/pages_0.html
new file mode 100644
index 0000000..c51c834
--- /dev/null
+++ b/docs/SVD/html/search/pages_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/pages_0.js b/docs/SVD/html/search/pages_0.js
new file mode 100644
index 0000000..967e520
--- /dev/null
+++ b/docs/SVD/html/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['cmsis_2dsvd_20schema_20file',['CMSIS-SVD Schema File',['../schema_1_2_gr.html',1,'']]]
+];
diff --git a/docs/SVD/html/search/pages_1.html b/docs/SVD/html/search/pages_1.html
new file mode 100644
index 0000000..2a98fce
--- /dev/null
+++ b/docs/SVD/html/search/pages_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/pages_1.js b/docs/SVD/html/search/pages_1.js
new file mode 100644
index 0000000..713183b
--- /dev/null
+++ b/docs/SVD/html/search/pages_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['file_20conventions',['File Conventions',['../svd_xml_conventions_gr.html',1,'svd_Format_pg']]]
+];
diff --git a/docs/SVD/html/search/pages_2.html b/docs/SVD/html/search/pages_2.html
new file mode 100644
index 0000000..0711a0b
--- /dev/null
+++ b/docs/SVD/html/search/pages_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/pages_2.js b/docs/SVD/html/search/pages_2.js
new file mode 100644
index 0000000..28a385d
--- /dev/null
+++ b/docs/SVD/html/search/pages_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['revision_20history',['Revision History',['../svd_revisionHistory.html',1,'']]]
+];
diff --git a/docs/SVD/html/search/pages_3.html b/docs/SVD/html/search/pages_3.html
new file mode 100644
index 0000000..4310311
--- /dev/null
+++ b/docs/SVD/html/search/pages_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/search/pages_3.js b/docs/SVD/html/search/pages_3.js
new file mode 100644
index 0000000..5af6f10
--- /dev/null
+++ b/docs/SVD/html/search/pages_3.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['special_20elements',['Special Elements',['../elem_special.html',1,'svd_Format_pg']]],
+ ['system_20view_20description',['System View Description',['../index.html',1,'']]],
+ ['svd_20file_20example',['SVD File Example',['../svd_Example_pg.html',1,'svd_Format_pg']]],
+ ['svd_20description_20_28_2a_2esvd_29_20format',['SVD Description (*.svd) Format',['../svd_Format_pg.html',1,'']]],
+ ['svdconv_2eexe',['SVDConv.exe',['../svd_SVDConv_pg.html',1,'']]],
+ ['svd_20file_20validation_20and_20usage',['SVD File Validation and Usage',['../svd_validate_file_pg.html',1,'']]]
+];
diff --git a/docs/SVD/html/search/search.css b/docs/SVD/html/search/search.css
new file mode 100644
index 0000000..4d7612f
--- /dev/null
+++ b/docs/SVD/html/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ float: none;
+ display: inline;
+ margin-top: 8px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+ background-color: white;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:111px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+ background-color: #F0F3F8;
+}
+
+.pages b {
+ color: white;
+ padding: 5px 5px 3px 5px;
+ background-image: url("../tab_a.png");
+ background-repeat: repeat-x;
+ text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+ line-height: 17px;
+ margin-left: 4px;
+ text-decoration: none;
+}
+
+.hl {
+ font-weight: bold;
+}
+
+#searchresults {
+ margin-bottom: 20px;
+}
+
+.searchpages {
+ margin-top: 10px;
+}
+
diff --git a/docs/SVD/html/search/search.js b/docs/SVD/html/search/search.js
new file mode 100644
index 0000000..292849e
--- /dev/null
+++ b/docs/SVD/html/search/search.js
@@ -0,0 +1,795 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+ 0: "cfrs",
+ 1: "cfrs"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "pages"
+};
+
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var idxChar = searchValue.substr(0, 1).toLowerCase();
+ if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+ {
+ idxChar = searchValue.substr(0, 2);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+ if (idx!=-1)
+ {
+ var hexCode=idx.toString(16);
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
diff --git a/docs/SVD/html/search/search_l.png b/docs/SVD/html/search/search_l.png
new file mode 100644
index 0000000..c872f4d
--- /dev/null
+++ b/docs/SVD/html/search/search_l.png
Binary files differ
diff --git a/docs/SVD/html/search/search_m.png b/docs/SVD/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/docs/SVD/html/search/search_m.png
Binary files differ
diff --git a/docs/SVD/html/search/search_r.png b/docs/SVD/html/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
--- /dev/null
+++ b/docs/SVD/html/search/search_r.png
Binary files differ
diff --git a/docs/SVD/html/svd_Example_pg.html b/docs/SVD/html/svd_Example_pg.html
new file mode 100644
index 0000000..26e9cba
--- /dev/null
+++ b/docs/SVD/html/svd_Example_pg.html
@@ -0,0 +1,916 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>SVD File Example</title>
+<title>CMSIS-SVD: SVD File Example</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('svd_Example_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">SVD File Example </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><pre class="fragment">&lt;?xml version="1.0" encoding="utf-8"?&gt;
+
+&lt;!-- File naming: &lt;part/series name&gt;.svd --&gt;
+
+&lt;!--
+ Copyright (C) 2012-2014 ARM Limited. All rights reserved.
+
+ Purpose: System Viewer Description (SVD) Example (Schema Version 1.1)
+ This is a description of a none-existent and incomplete device
+ for demonstration purposes only.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of ARM nor the names of its contributors may be used
+ to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ --&gt;
+
+&lt;device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD.xsd" &gt;
+ &lt;vendor&gt;ARM Ltd.&lt;/vendor&gt; &lt;!-- device vendor name --&gt;
+ &lt;vendorID&gt;ARM&lt;/vendorID&gt; &lt;!-- device vendor short name --&gt;
+ &lt;name&gt;ARM_Example&lt;/name&gt; &lt;!-- name of part--&gt;
+ &lt;series&gt;ARMCM3&lt;/series&gt; &lt;!-- device series the device belongs to --&gt;
+ &lt;version&gt;1.2&lt;/version&gt; &lt;!-- version of this description, adding CMSIS-SVD 1.1 tags --&gt;
+ &lt;description&gt;ARM 32-bit Cortex-M3 Microcontroller based device, CPU clock up to 80MHz, etc. &lt;/description&gt;
+ &lt;licenseText&gt; &lt;!-- this license text will appear in header file. \n force line breaks --&gt;
+ ARM Limited (ARM) is supplying this software for use with Cortex-M\n
+ processor based microcontroller, but can be equally used for other\n
+ suitable processor architectures. This file can be freely distributed.\n
+ Modifications to this file shall be clearly marked.\n
+ \n
+ THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED\n
+ OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\n
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\n
+ ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\n
+ CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ &lt;/licenseText&gt;
+ &lt;cpu&gt; &lt;!-- details about the cpu embedded in the device --&gt;
+ &lt;name&gt;CM3&lt;/name&gt;
+ &lt;revision&gt;r1p0&lt;/revision&gt;
+ &lt;endian&gt;little&lt;/endian&gt;
+ &lt;mpuPresent&gt;true&lt;/mpuPresent&gt;
+ &lt;fpuPresent&gt;false&lt;/fpuPresent&gt;
+ &lt;nvicPrioBits&gt;3&lt;/nvicPrioBits&gt;
+ &lt;vendorSystickConfig&gt;false&lt;/vendorSystickConfig&gt;
+ &lt;/cpu&gt;
+ &lt;addressUnitBits&gt;8&lt;/addressUnitBits&gt; &lt;!-- byte addressable memory --&gt;
+ &lt;width&gt;32&lt;/width&gt; &lt;!-- bus width is 32 bits --&gt;
+ &lt;!-- default settings implicitly inherited by subsequent sections --&gt;
+ &lt;size&gt;32&lt;/size&gt; &lt;!-- this is the default size (number of bits) of all peripherals
+ and register that do not define "size" themselves --&gt;
+ &lt;access&gt;read-write&lt;/access&gt; &lt;!-- default access permission for all subsequent registers --&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt; &lt;!-- by default all bits of the registers are initialized to 0 on reset --&gt;
+ &lt;resetMask&gt;0xFFFFFFFF&lt;/resetMask&gt; &lt;!-- by default all 32Bits of the registers are used --&gt;
+
+ &lt;peripherals&gt;
+ &lt;!-- Timer 0 --&gt;
+ &lt;peripheral&gt;
+ &lt;name&gt;TIMER0&lt;/name&gt;
+ &lt;version&gt;1.0&lt;/version&gt;
+ &lt;description&gt;32 Timer / Counter, counting up or down from different sources&lt;/description&gt;
+ &lt;groupName&gt;TIMER&lt;/groupName&gt;
+ &lt;baseAddress&gt;0x40010000&lt;/baseAddress&gt;
+ &lt;size&gt;32&lt;/size&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+
+ &lt;addressBlock&gt;
+ &lt;offset&gt;0&lt;/offset&gt;
+ &lt;size&gt;0x100&lt;/size&gt;
+ &lt;usage&gt;registers&lt;/usage&gt;
+ &lt;/addressBlock&gt;
+
+ &lt;interrupt&gt;
+ &lt;name&gt;TIMER0&lt;/name&gt;
+ &lt;description&gt;Timer 0 interrupt&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/interrupt&gt;
+
+ &lt;registers&gt;
+ &lt;!-- CR: Control Register --&gt;
+ &lt;register&gt;
+ &lt;name&gt;CR&lt;/name&gt;
+ &lt;description&gt;Control Register&lt;/description&gt;
+ &lt;addressOffset&gt;0x00&lt;/addressOffset&gt;
+ &lt;size&gt;32&lt;/size&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0x1337F7F&lt;/resetMask&gt;
+
+ &lt;fields&gt;
+ &lt;!-- EN: Enable --&gt;
+ &lt;field&gt;
+ &lt;name&gt;EN&lt;/name&gt;
+ &lt;description&gt;Enable&lt;/description&gt;
+ &lt;bitRange&gt;[0:0]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Disable&lt;/name&gt;
+ &lt;description&gt;Timer is disabled and does not operate&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Enable&lt;/name&gt;
+ &lt;description&gt;Timer is enabled and can operate&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- RST: Reset --&gt;
+ &lt;field&gt;
+ &lt;name&gt;RST&lt;/name&gt;
+ &lt;description&gt;Reset Timer&lt;/description&gt;
+ &lt;bitRange&gt;[1:1]&lt;/bitRange&gt;
+ &lt;access&gt;write-only&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;No_Action&lt;/name&gt;
+ &lt;description&gt;Write as ZERO if necessary&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Reset_Timer&lt;/name&gt;
+ &lt;description&gt;Reset the Timer&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- CNT: Counting Direction --&gt;
+ &lt;field&gt;
+ &lt;name&gt;CNT&lt;/name&gt;
+ &lt;description&gt;Counting direction&lt;/description&gt;
+ &lt;bitRange&gt;[3:2]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Count_UP&lt;/name&gt;
+ &lt;description&gt;Timer Counts UO and wraps, if no STOP condition is set&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Count_DOWN&lt;/name&gt;
+ &lt;description&gt;Timer Counts DOWN and wraps, if no STOP condition is set&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Toggle&lt;/name&gt;
+ &lt;description&gt;Timer Counts up to MAX, then DOWN to ZERO, if no STOP condition is set&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- MODE: Operation Mode --&gt;
+ &lt;field&gt;
+ &lt;name&gt;MODE&lt;/name&gt;
+ &lt;description&gt;Operation Mode&lt;/description&gt;
+ &lt;bitRange&gt;[6:4]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Continous&lt;/name&gt;
+ &lt;description&gt;Timer runs continously&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Single_ZERO_MAX&lt;/name&gt;
+ &lt;description&gt;Timer counts to 0x00 or 0xFFFFFFFF (depending on CNT) and stops&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Single_MATCH&lt;/name&gt;
+ &lt;description&gt;Timer counts to the Value of MATCH Register and stops&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Reload_ZERO_MAX&lt;/name&gt;
+ &lt;description&gt;Timer counts to 0x00 or 0xFFFFFFFF (depending on CNT), loads the RELOAD Value and continues&lt;/description&gt;
+ &lt;value&gt;3&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Reload_MATCH&lt;/name&gt;
+ &lt;description&gt;Timer counts to the Value of MATCH Register, loads the RELOAD Value and continues&lt;/description&gt;
+ &lt;value&gt;4&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- PSC: Use Prescaler --&gt;
+ &lt;field&gt;
+ &lt;name&gt;PSC&lt;/name&gt;
+ &lt;description&gt;Use Prescaler&lt;/description&gt;
+ &lt;bitRange&gt;[7:7]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Disabled&lt;/name&gt;
+ &lt;description&gt;Prescaler is not used&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Enabled&lt;/name&gt;
+ &lt;description&gt;Prescaler is used as divider&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- CNTSRC: Timer / Counter Soruce Divider --&gt;
+ &lt;field&gt;
+ &lt;name&gt;CNTSRC&lt;/name&gt;
+ &lt;description&gt;Timer / Counter Source Divider&lt;/description&gt;
+ &lt;bitRange&gt;[11:8]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC&lt;/name&gt;
+ &lt;description&gt;Capture Source is used directly&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div2&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 2&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div4&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 4&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div8&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 8&lt;/description&gt;
+ &lt;value&gt;3&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div16&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 16&lt;/description&gt;
+ &lt;value&gt;4&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div32&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 32&lt;/description&gt;
+ &lt;value&gt;5&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div64&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 64&lt;/description&gt;
+ &lt;value&gt;6&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div128&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 128&lt;/description&gt;
+ &lt;value&gt;7&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CAP_SRC_div256&lt;/name&gt;
+ &lt;description&gt;Capture Source is divided by 256&lt;/description&gt;
+ &lt;value&gt;8&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- CAPSRC: Timer / COunter Capture Source --&gt;
+ &lt;field&gt;
+ &lt;name&gt;CAPSRC&lt;/name&gt;
+ &lt;description&gt;Timer / Counter Capture Source&lt;/description&gt;
+ &lt;bitRange&gt;[15:12]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;CClk&lt;/name&gt;
+ &lt;description&gt;Core Clock&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_0&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 0&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_1&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 1&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_2&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 2&lt;/description&gt;
+ &lt;value&gt;3&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_3&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 3&lt;/description&gt;
+ &lt;value&gt;4&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_4&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 4&lt;/description&gt;
+ &lt;value&gt;5&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_5&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 5&lt;/description&gt;
+ &lt;value&gt;6&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_6&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 6&lt;/description&gt;
+ &lt;value&gt;7&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOA_7&lt;/name&gt;
+ &lt;description&gt;GPIO A, PIN 7&lt;/description&gt;
+ &lt;value&gt;8&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOB_0&lt;/name&gt;
+ &lt;description&gt;GPIO B, PIN 0&lt;/description&gt;
+ &lt;value&gt;9&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOB_1&lt;/name&gt;
+ &lt;description&gt;GPIO B, PIN 1&lt;/description&gt;
+ &lt;value&gt;10&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOB_2&lt;/name&gt;
+ &lt;description&gt;GPIO B, PIN 2&lt;/description&gt;
+ &lt;value&gt;11&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOB_3&lt;/name&gt;
+ &lt;description&gt;GPIO B, PIN 3&lt;/description&gt;
+ &lt;value&gt;12&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOC_0&lt;/name&gt;
+ &lt;description&gt;GPIO C, PIN 0&lt;/description&gt;
+ &lt;value&gt;13&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOC_5&lt;/name&gt;
+ &lt;description&gt;GPIO C, PIN 1&lt;/description&gt;
+ &lt;value&gt;14&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;GPIOC_6&lt;/name&gt;
+ &lt;description&gt;GPIO C, PIN 2&lt;/description&gt;
+ &lt;value&gt;15&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- CAPEDGE: Capture Edge --&gt;
+ &lt;field&gt;
+ &lt;name&gt;CAPEDGE&lt;/name&gt;
+ &lt;description&gt;Capture Edge, select which Edge should result in a counter increment or decrement&lt;/description&gt;
+ &lt;bitRange&gt;[17:16]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RISING&lt;/name&gt;
+ &lt;description&gt;Only rising edges result in a counter increment or decrement&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;FALLING&lt;/name&gt;
+ &lt;description&gt;Only falling edges result in a counter increment or decrement&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;BOTH&lt;/name&gt;
+ &lt;description&gt;Rising and falling edges result in a counter increment or decrement&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- TRGEXT: Triggers an other Peripheral --&gt;
+ &lt;field&gt;
+ &lt;name&gt;TRGEXT&lt;/name&gt;
+ &lt;description&gt;Triggers an other Peripheral&lt;/description&gt;
+ &lt;bitRange&gt;[21:20]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;NONE&lt;/name&gt;
+ &lt;description&gt;No Trigger is emitted&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;DMA1&lt;/name&gt;
+ &lt;description&gt;DMA Controller 1 is triggered, dependant on MODE&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;DMA2&lt;/name&gt;
+ &lt;description&gt;DMA Controller 2 is triggered, dependant on MODE&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;UART&lt;/name&gt;
+ &lt;description&gt;UART is triggered, dependant on MODE&lt;/description&gt;
+ &lt;value&gt;3&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- Reload: Selects Reload Register n --&gt;
+ &lt;field&gt;
+ &lt;name&gt;RELOAD&lt;/name&gt;
+ &lt;description&gt;Select RELOAD Register n to reload Timer on condition&lt;/description&gt;
+ &lt;bitRange&gt;[25:24]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD0&lt;/name&gt;
+ &lt;description&gt;Selects Reload Register number 0&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD1&lt;/name&gt;
+ &lt;description&gt;Selects Reload Register number 1&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD2&lt;/name&gt;
+ &lt;description&gt;Selects Reload Register number 2&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD3&lt;/name&gt;
+ &lt;description&gt;Selects Reload Register number 3&lt;/description&gt;
+ &lt;value&gt;3&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- IDR: Inc or dec Reload Register Selection --&gt;
+ &lt;field&gt;
+ &lt;name&gt;IDR&lt;/name&gt;
+ &lt;description&gt;Selects, if Reload Register number is incremented, decremented or not modified&lt;/description&gt;
+ &lt;bitRange&gt;[27:26]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;KEEP&lt;/name&gt;
+ &lt;description&gt;Reload Register number does not change automatically&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;INCREMENT&lt;/name&gt;
+ &lt;description&gt;Reload Register number is incremented on each match&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;DECREMENT&lt;/name&gt;
+ &lt;description&gt;Reload Register number is decremented on each match&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- START: Starts / Stops the Timer/Counter --&gt;
+ &lt;field&gt;
+ &lt;name&gt;S&lt;/name&gt;
+ &lt;description&gt;Starts and Stops the Timer / Counter&lt;/description&gt;
+ &lt;bitRange&gt;[31:31]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;STOP&lt;/name&gt;
+ &lt;description&gt;Timer / Counter is stopped&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;START&lt;/name&gt;
+ &lt;description&gt;Timer / Counter is started&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+ &lt;/fields&gt;
+ &lt;/register&gt;
+
+ &lt;!-- SR: Status Register --&gt;
+ &lt;register&gt;
+ &lt;name&gt;SR&lt;/name&gt;
+ &lt;description&gt;Status Register&lt;/description&gt;
+ &lt;addressOffset&gt;0x04&lt;/addressOffset&gt;
+ &lt;size&gt;16&lt;/size&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0xD701&lt;/resetMask&gt;
+
+ &lt;fields&gt;
+ &lt;!-- RUN: Shows if Timer is running --&gt;
+ &lt;field&gt;
+ &lt;name&gt;RUN&lt;/name&gt;
+ &lt;description&gt;Shows if Timer is running or not&lt;/description&gt;
+ &lt;bitRange&gt;[0:0]&lt;/bitRange&gt;
+ &lt;access&gt;read-only&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Stopped&lt;/name&gt;
+ &lt;description&gt;Timer is not running&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Running&lt;/name&gt;
+ &lt;description&gt;Timer is running&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- MATCH: Shows if a Match was hit --&gt;
+ &lt;field&gt;
+ &lt;name&gt;MATCH&lt;/name&gt;
+ &lt;description&gt;Shows if the MATCH was hit&lt;/description&gt;
+ &lt;bitRange&gt;[8:8]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;No_Match&lt;/name&gt;
+ &lt;description&gt;The MATCH condition was not hit&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Match_Hit&lt;/name&gt;
+ &lt;description&gt;The MATCH condition was hit&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- UN: Shows if an underflow occured --&gt;
+ &lt;field&gt;
+ &lt;name&gt;UN&lt;/name&gt;
+ &lt;description&gt;Shows if an underflow occured. This flag is sticky&lt;/description&gt;
+ &lt;bitRange&gt;[9:9]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;No_Underflow&lt;/name&gt;
+ &lt;description&gt;No underflow occured since last clear&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Underflow&lt;/name&gt;
+ &lt;description&gt;A minimum of one underflow occured since last clear&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- OV: Shows if an overflow occured --&gt;
+ &lt;field&gt;
+ &lt;name&gt;OV&lt;/name&gt;
+ &lt;description&gt;Shows if an overflow occured. This flag is sticky&lt;/description&gt;
+ &lt;bitRange&gt;[10:10]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;No_Overflow&lt;/name&gt;
+ &lt;description&gt;No overflow occured since last clear&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Overflow_occured&lt;/name&gt;
+ &lt;description&gt;A minimum of one overflow occured since last clear&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- RST: Shows if Timer is in RESET state --&gt;
+ &lt;field&gt;
+ &lt;name&gt;RST&lt;/name&gt;
+ &lt;description&gt;Shows if Timer is in RESET state&lt;/description&gt;
+ &lt;bitRange&gt;[12:12]&lt;/bitRange&gt;
+ &lt;access&gt;read-only&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Ready&lt;/name&gt;
+ &lt;description&gt;Timer is not in RESET state and can operate&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;In_Reset&lt;/name&gt;
+ &lt;description&gt;Timer is in RESET state and can not operate&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- RELOAD: Shows the currently active Reload Register --&gt;
+ &lt;field&gt;
+ &lt;name&gt;RELOAD&lt;/name&gt;
+ &lt;description&gt;Shows the currently active RELOAD Register&lt;/description&gt;
+ &lt;bitRange&gt;[15:14]&lt;/bitRange&gt;
+ &lt;access&gt;read-only&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD0&lt;/name&gt;
+ &lt;description&gt;Reload Register number 0 is active&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD1&lt;/name&gt;
+ &lt;description&gt;Reload Register number 1 is active&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD2&lt;/name&gt;
+ &lt;description&gt;Reload Register number 2 is active&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;RELOAD3&lt;/name&gt;
+ &lt;description&gt;Reload Register number 3 is active&lt;/description&gt;
+ &lt;value&gt;3&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+ &lt;/fields&gt;
+ &lt;/register&gt;
+
+ &lt;!-- INT: Interrupt Register --&gt;
+ &lt;register&gt;
+ &lt;name&gt;INT&lt;/name&gt;
+ &lt;description&gt;Interrupt Register&lt;/description&gt;
+ &lt;addressOffset&gt;0x10&lt;/addressOffset&gt;
+ &lt;size&gt;16&lt;/size&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0x0771&lt;/resetMask&gt;
+
+ &lt;fields&gt;
+ &lt;!-- EN: Interrupt Enable --&gt;
+ &lt;field&gt;
+ &lt;name&gt;EN&lt;/name&gt;
+ &lt;description&gt;Interrupt Enable&lt;/description&gt;
+ &lt;bitRange&gt;[0:0]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Disabled&lt;/name&gt;
+ &lt;description&gt;Timer does not generate Interrupts&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Enable&lt;/name&gt;
+ &lt;description&gt;Timer triggers the TIMERn Interrupt&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+
+ &lt;!-- MODE: Interrupt Mode --&gt;
+ &lt;field&gt;
+ &lt;name&gt;MODE&lt;/name&gt;
+ &lt;description&gt;Interrupt Mode, selects on which condition the Timer should generate an Interrupt&lt;/description&gt;
+ &lt;bitRange&gt;[6:4]&lt;/bitRange&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;enumeratedValues&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Match&lt;/name&gt;
+ &lt;description&gt;Timer generates an Interrupt when the MATCH condition is hit&lt;/description&gt;
+ &lt;value&gt;0&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Underflow&lt;/name&gt;
+ &lt;description&gt;Timer generates an Interrupt when it underflows&lt;/description&gt;
+ &lt;value&gt;1&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;enumeratedValue&gt;
+ &lt;name&gt;Overflow&lt;/name&gt;
+ &lt;description&gt;Timer generates an Interrupt when it overflows&lt;/description&gt;
+ &lt;value&gt;2&lt;/value&gt;
+ &lt;/enumeratedValue&gt;
+ &lt;/enumeratedValues&gt;
+ &lt;/field&gt;
+ &lt;/fields&gt;
+ &lt;/register&gt;
+
+ &lt;!-- COUNT: Counter Register --&gt;
+ &lt;register&gt;
+ &lt;name&gt;COUNT&lt;/name&gt;
+ &lt;description&gt;The Counter Register reflects the actual Value of the Timer/Counter&lt;/description&gt;
+ &lt;addressOffset&gt;0x20&lt;/addressOffset&gt;
+ &lt;size&gt;32&lt;/size&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0xFFFFFFFF&lt;/resetMask&gt;
+ &lt;/register&gt;
+
+ &lt;!-- MATCH: Match Register --&gt;
+ &lt;register&gt;
+ &lt;name&gt;MATCH&lt;/name&gt;
+ &lt;description&gt;The Match Register stores the compare Value for the MATCH condition&lt;/description&gt;
+ &lt;addressOffset&gt;0x24&lt;/addressOffset&gt;
+ &lt;size&gt;32&lt;/size&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0xFFFFFFFF&lt;/resetMask&gt;
+ &lt;/register&gt;
+
+ &lt;!-- PRESCALE: Prescale Read Register --&gt;
+ &lt;register&gt;
+ &lt;name&gt;PRESCALE_RD&lt;/name&gt;
+ &lt;description&gt;The Prescale Register stores the Value for the prescaler. The cont event gets divided by this value&lt;/description&gt;
+ &lt;addressOffset&gt;0x28&lt;/addressOffset&gt;
+ &lt;size&gt;32&lt;/size&gt;
+ &lt;access&gt;read-only&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0xFFFFFFFF&lt;/resetMask&gt;
+ &lt;/register&gt;
+
+ &lt;!-- PRESCALE: Prescale Write Register --&gt;
+ &lt;register&gt;
+ &lt;name&gt;PRESCALE_WR&lt;/name&gt;
+ &lt;description&gt;The Prescale Register stores the Value for the prescaler. The cont event gets divided by this value&lt;/description&gt;
+ &lt;addressOffset&gt;0x28&lt;/addressOffset&gt;
+ &lt;size&gt;32&lt;/size&gt;
+ &lt;access&gt;write-only&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0xFFFFFFFF&lt;/resetMask&gt;
+ &lt;/register&gt;
+
+
+ &lt;!-- RELOAD: Array of Reload Register with 4 elements--&gt;
+ &lt;register&gt;
+ &lt;dim&gt;4&lt;/dim&gt;
+ &lt;dimIncrement&gt;4&lt;/dimIncrement&gt;
+ &lt;name&gt;RELOAD[%s]&lt;/name&gt;
+ &lt;description&gt;The Reload Register stores the Value the COUNT Register gets reloaded on a when a condition was met.&lt;/description&gt;
+ &lt;addressOffset&gt;0x50&lt;/addressOffset&gt;
+ &lt;size&gt;32&lt;/size&gt;
+ &lt;access&gt;read-write&lt;/access&gt;
+ &lt;resetValue&gt;0x00000000&lt;/resetValue&gt;
+ &lt;resetMask&gt;0xFFFFFFFF&lt;/resetMask&gt;
+ &lt;/register&gt;
+ &lt;/registers&gt;
+ &lt;/peripheral&gt;
+
+ &lt;!-- Timer 1 --&gt;
+ &lt;peripheral derivedFrom="TIMER0"&gt;
+ &lt;name&gt;TIMER1&lt;/name&gt;
+ &lt;baseAddress&gt;0x40010100&lt;/baseAddress&gt;
+ &lt;interrupt&gt;
+ &lt;name&gt;TIMER1&lt;/name&gt;
+ &lt;description&gt;Timer 2 interrupt&lt;/description&gt;
+ &lt;value&gt;4&lt;/value&gt;
+ &lt;/interrupt&gt;
+ &lt;/peripheral&gt;
+
+ &lt;!-- Timer 2 --&gt;
+ &lt;peripheral derivedFrom="TIMER0"&gt;
+ &lt;name&gt;TIMER2&lt;/name&gt;
+ &lt;baseAddress&gt;0x40010200&lt;/baseAddress&gt;
+ &lt;interrupt&gt;
+ &lt;name&gt;TIMER2&lt;/name&gt;
+ &lt;description&gt;Timer 2 interrupt&lt;/description&gt;
+ &lt;value&gt;6&lt;/value&gt;
+ &lt;/interrupt&gt;
+ &lt;/peripheral&gt;
+ &lt;/peripherals&gt;
+&lt;/device&gt;
+</pre> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/svd_Format_pg.html b/docs/SVD/html/svd_Format_pg.html
new file mode 100644
index 0000000..4515335
--- /dev/null
+++ b/docs/SVD/html/svd_Format_pg.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>SVD Description (*.svd) Format</title>
+<title>CMSIS-SVD: SVD Description (*.svd) Format</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('svd_Format_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">SVD Description (*.svd) Format </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The CMSIS-SVD format is based on XML and was influenced by IP-XACT. Due to the much wider scope and complexity of IP-XACT, it was decided to specify a separate format focused and tailored towards the description of the programmer's view of a device.</p>
+<p><b>CMSIS-SVD XML Hierarchy</b></p>
+<div class="image">
+<img src="CMSIS_SVD_Schema_Gen.png" alt="CMSIS_SVD_Schema_Gen.png"/>
+<div class="caption">
+CMSIS-SVD Hierarchy Levels</div></div>
+<p> One CMSIS-SVD file contains the description of a single device. A device consists of a processor and at least one peripheral. Each peripheral contains at least one register. A register may consist of one or more fields. The range of values for a field may be further described with enumerated values.</p>
+<ul>
+<li><a class="el" href="svd_xml_conventions_gr.html">File Conventions:</a> Outlines the main conventions for writing an SVD description file. <br/>
+<br/>
+</li>
+<li><a class="el" href="svd_Example_pg.html">SVD File Example</a> Provides an example outlining the SVD XML structure. <br/>
+<br/>
+</li>
+<li><a class="el" href="elem_device.html">Device Level:</a> The top level of a System View Description is the device. On this level, information is captured that is specific to the device as a whole. For example, the device name, description, or version. The minimal addressable unit as well as the bit-width of the data bus are required by the debugger to perform the correct target accesses. <br/>
+Default values for register attributes like register size, reset value, and access permissions can be set for the whole device on this level and are implicitly inherited by the lower levels of the description. If however specified on a lower level, the default setting from a higher level will get overruled. <br/>
+<br/>
+</li>
+<li><a class="el" href="elem_cpu.html">CPU Level:</a> The CPU section describes the processor included in the microcontroller device. This section is mandatory if the SVD file is used to generate the device header file. <br/>
+<br/>
+</li>
+<li><a class="el" href="elem_peripherals.html">Peripherals Level:</a> A peripheral is a named collection of registers. A peripheral is mapped to a defined <em>base address</em> within the device's address space. A peripheral allocates one or more exclusive address blocks relative to its base address, such that all described registers fit into the allocated address blocks. Allocated addresses without an associated register description are automatically considered reserved. The peripheral can be assigned to a group of peripherals and may be associated with one or more interrupts. <br/>
+<br/>
+</li>
+<li><a class="el" href="elem_registers.html">Registers Level:</a> A register is a named, programmable resource that belongs to a peripheral. Registers are mapped to a defined address in the address space of the device. An address is specified relative to the peripheral base address. The description of a register documents the purpose and function of the resource. A debugger requires information about the permitted access to a resource as well as side effects triggered by read and write accesses respectively. <br/>
+<br/>
+</li>
+<li><a class="el" href="elem_registers.html#elem_fields">Fields Level:</a> Registers may be partitioned into chunks of bits of distinct functionality. A chunk is referred to as <em>field</em>. The field names within a single register must be unique. Only architecturally defined fields shall be described. Any bits not being explicitly described are treated as reserved. They are not displayed in the System Viewer and are padded in the bit fields of the device header file. The case-insensitive field named <b>"reserved"</b> is treated as a keyword and each field with this name is ignored. <br/>
+<br/>
+</li>
+<li><a class="el" href="elem_registers.html#elem_enumeratedValues">Enumerated Values Level:</a> An enumeration maps an unsigned integer constant to a descriptive identifier and, optionally, to a description string. Enumerations are used in C to enhance the readability of source code. Similarly, it can be used by debuggers to provide more instructive information to the programmer, avoiding a lookup in the device documentation. <br/>
+<br/>
+</li>
+<li><a class="el" href="elem_special.html">Special Elements:</a> Specific elements that occur in various other elements are described in this section. <br/>
+<br/>
+</li>
+<li><b>Vendor Extensions:</b> The CMSIS-SVD format includes a section named <em>&lt;vendorExtensions&gt;</em> positioned after the closing tag <em>&lt;/peripherals&gt;</em>. This allows silicon vendors and tool partners to extend the description beyond the current specification.</li>
+</ul>
+<p><b>Multiple Instantiation</b></p>
+<p>CMSIS-SVD supports the reuse of whole sections of the description. The attribute <em>derivedFrom</em> for <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a>, <a class="el" href="elem_registers.html#elem_register">register</a>, and <a class="el" href="elem_registers.html#elem_field">field</a> specifies the source of the section to be copied from. Individual tags can be used to redefine specific elements within a copied section.</p>
+<p><b>Array of Elements</b></p>
+<p>A powerfull construct in data structures of the C programming language is the array. An array is a series of data elements of the same type selected via an index. CMSIS-SVD supports arrays for <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a>, <a class="el" href="elem_registers.html#elem_cluster">cluster</a>, and <a class="el" href="elem_registers.html#elem_register">register</a>.</p>
+<p><b>Peripheral Grouping</b></p>
+<p>Peripherals that provide similar functionality (Simple Timer, Complex Timer) can be grouped with the element <em>&lt;groupName&gt;</em>. Peripheral groups help structuring the list of peripherals in the debugger. All peripherals associated with the same group name are collectively listed under this group in the order they were specified in the SVD file.</p>
+<p><b>Descriptions</b></p>
+<p>On each level, the tag <em>&lt;description&gt;</em> provides verbose information about the respective element. The description field plays an important part in improving software development productivity as it gives instant access to information that otherwise would need to be looked up in the device documentation.</p>
+<p>All multiple whitespace characters (space, tab, linefeed, carriage return) may be removed from the description by any tool for further processing (i.e. SVDConv does). In order to preserve explicit linebreaks one has to use the linefeed escape sequence (i.e. \n).</p>
+<p>&#160; </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/svd_Format_pg.js b/docs/SVD/html/svd_Format_pg.js
new file mode 100644
index 0000000..8442c1b
--- /dev/null
+++ b/docs/SVD/html/svd_Format_pg.js
@@ -0,0 +1,35 @@
+var svd_Format_pg =
+[
+ [ "File Conventions", "svd_xml_conventions_gr.html", [
+ [ "Names", "svd_xml_conventions_gr.html#Names", null ],
+ [ "Constants", "svd_xml_conventions_gr.html#Constants", null ],
+ [ "Comments", "svd_xml_conventions_gr.html#Comments", null ],
+ [ "Empty Tags", "svd_xml_conventions_gr.html#_", null ]
+ ] ],
+ [ "SVD File Example", "svd_Example_pg.html", null ],
+ [ "/device element", "elem_device.html", null ],
+ [ "/device/cpu element", "elem_cpu.html", [
+ [ "/device/cpu/sauRegionsConfig element", "elem_cpu.html#elem_sauRegionsConfig", null ],
+ [ "/device/cpu/sauRegionsConfig/region element", "elem_cpu.html#elem_region", null ]
+ ] ],
+ [ "/device/peripherals element", "elem_peripherals.html", [
+ [ "/device/peripherals/peripheral element", "elem_peripherals.html#elem_peripheral", null ],
+ [ "/device/peripherals/peripheral/addressBlock element", "elem_peripherals.html#elem_addressBlock", null ],
+ [ "/device/peripherals/peripheral/interrupt element", "elem_peripherals.html#elem_interrupt", null ]
+ ] ],
+ [ "/device/peripherals/peripheral/registers element", "elem_registers.html", [
+ [ "/device/pripherals/peripheral/registers/.../cluster element", "elem_registers.html#elem_cluster", null ],
+ [ "/device/peripherals/peripheral/registers/.../register element", "elem_registers.html#elem_register", null ],
+ [ "/device/peripherals/peripheral/registers/.../register/.../writeConstraint element", "elem_registers.html#elem_writeConstraint", null ],
+ [ "/device/peripherals/peripheral/registers/.../register/fields element", "elem_registers.html#elem_fields", null ],
+ [ "/device/peripherals/peripheral/registers/.../fields/field element", "elem_registers.html#elem_field", null ],
+ [ "/device/peripherals/peripheral/registers/.../field/enumeratedValues element", "elem_registers.html#elem_enumeratedValues", null ],
+ [ "/device/peripherals/peripheral/registers/.../enumeratedValue element", "elem_registers.html#elem_enumeratedValue", null ]
+ ] ],
+ [ "Special Elements", "elem_special.html", [
+ [ "dimElementGroup", "elem_special.html#dimElementGroup_gr", [
+ [ "/device/peripherals/peripheral/.../dimArrayIndex element", "elem_special.html#elem_dimArrayIndex", null ]
+ ] ],
+ [ "registerPropertiesGroup", "elem_special.html#registerPropertiesGroup_gr", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/SVD/html/svd_SVDConv_pg.html b/docs/SVD/html/svd_SVDConv_pg.html
new file mode 100644
index 0000000..1c33724
--- /dev/null
+++ b/docs/SVD/html/svd_SVDConv_pg.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>SVDConv.exe</title>
+<title>CMSIS-SVD: SVDConv.exe</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('svd_SVDConv_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">SVDConv.exe </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p><b>SVDConv.exe</b> is a command-line utility to validate CMSIS-SVD files and to generate CMSIS-compliant device header files. <b>SVDConv.exe</b> is distributed with the <b>ARM::CMSIS</b> Pack (in the CMSIS\Utilities directory) together with the CMSIS-SVD schema file.</p>
+<p><b>SVDConv.exe</b> performs the following operations:</p>
+<ul>
+<li>Checks the syntactical and structural compliance with the specified CMSIS-SVD format.</li>
+<li>Checks the consistency, correctness, and completeness of the CMSIS-SVD file against the CMSIS-SVD schema file.</li>
+<li>Generates CMSIS-compliant device header files, which can be used for software development.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Consider using --strict option to receive all pedantic warnings. Some rules are skipped by default due to backward compatibility reasons. All newly developed/updated SVD files should rather respect all rules.</dd></dl>
+<h2>Operation </h2>
+<p><b>SVDConv.exe</b> is invoked form the command line. The general command format is: </p>
+<div class="fragment"><div class="line">SVDConv.exe &lt;SVD_file&gt; &lt;options&gt;</div>
+</div><!-- fragment --><p>&#160;</p>
+<table class="cmtable" summary="SVDConv Args">
+<tr>
+<th>&lt;options&gt; </th><th>Short Name </th><th>Description </th></tr>
+<tr>
+<td><em>none</em> </td><td>Validation </td><td>Perform a validation check of the SVD file. Errors and warnings are printed on screen. </td></tr>
+<tr>
+<td>-b </td><td>Log File </td><td>Specify the log file name for writing messages. Default: screen. </td></tr>
+<tr>
+<td>-o </td><td>Output Path </td><td>Specify an output path for the generated device header file or log file. Default: current directory. </td></tr>
+<tr>
+<td>--generate=header </td><td>Generate Device Header File </td><td>Generates the device header file. The name of the generated file is derived from the value of the tag &lt;device&lt;name&gt; in the CMSIS-SVD file. Refer to <a class="el" href="elem_device.html">device</a>. </td></tr>
+<tr>
+<td>--generate=partition </td><td>Generate Partition file for Cortex-M Security Extensions (Armv8-M) </td><td>Generates the device partition file. The name of the generated file is composed of <em>partition_</em> and the value of the device <em>&lt;name&gt;</em> (for example, <em>partition_CMSDK_ARMv8MBL.h</em>). Refer to <a class="el" href="elem_device.html">/device element</a>. The content of the file uses Configuration Wizard annotations and is derived from the SAU-specific information of the <a class="el" href="elem_cpu.html#elem_sauRegionsConfig">/device/cpu/sauRegionsConfig element</a> and the interrupts specified in the <a class="el" href="elem_peripherals.html">/device/peripherals element</a>. </td></tr>
+<tr>
+<td>--fields=enum </td><td>Bit-field Enums </td><td>Generates enum lists for each field value description contained in the CMSIS-SVD input file. Must be used in combination with <em>--generate=header</em>. </td></tr>
+<tr>
+<td>--fields=macro </td><td>Bit-field Macros </td><td>Generates position and mask C-Macros for each field description contained in the CMSIS-SVD input file. Must be used in combination with <em>--generate=header</em>. </td></tr>
+<tr>
+<td>--fields=struct </td><td>Bit-field Structs </td><td>Generates bit fields for each field description contained in the CMSIS-SVD input file. Must be used in combination with <em>--generate=header</em>. </td></tr>
+<tr>
+<td>--fields=struct-ansic </td><td>ANSI Bit-field Structs </td><td>Generates MISRA-compliant structures for each bitfield. The generated code <b>is not CMSIS-compliant</b>! Must be used in combination with <em>--generate=header</em>. </td></tr>
+<tr>
+<td>--strict </td><td>Strict error checking </td><td><b>RECOMMENDED!</b> Applies strict error checking and generates a lot more messages. </td></tr>
+</table>
+<h2>Return Codes </h2>
+<p><b>SVDConv.exe</b> returns the following codes: <br/>
+</p>
+<table class="doxtable">
+<tr>
+<th align="center">Code </th><th align="left">Description </th><th align="left">Action </th></tr>
+<tr>
+<td align="center">0 </td><td align="left">OK </td><td align="left">No action required. Validation and conversion performed without errors. </td></tr>
+<tr>
+<td align="center">1 </td><td align="left">WARNINGS </td><td align="left">Warnings should be checked an possibly removed. The header file is created and could be used. </td></tr>
+<tr>
+<td align="center">2 </td><td align="left">ERRORS </td><td align="left">Errors in the SVD description file. Important elements are missing and must be corrected. </td></tr>
+<tr>
+<td align="center">3 </td><td align="left">Error in command line </td><td align="left">Check and correct the command line arguments. </td></tr>
+</table>
+<p><b>Examples</b> <br/>
+</p>
+<ol type="1">
+<li>Retrieve help information on screen. <div class="fragment"><div class="line">SVDConv.exe </div>
+</div><!-- fragment --> <br/>
+</li>
+<li>Perform a consistency check by passing only the SVD file name. Errors and warnings are printed on screen. <div class="fragment"><div class="line">SVDConv.exe ARM_Example.svd </div>
+</div><!-- fragment --> <br/>
+ The result is printed on screen: <pre class="fragment"> MVCM3110.svd(1688) : info
+ &lt;description&gt; missing for value '2 : MODE2'
+ MVCM3110.svd(1692) : info
+ &lt;description&gt; missing for value '3 : MODE3'
+ MVCM3110.svd(1696) : info
+ &lt;description&gt; missing for value '4 : MODE4'
+ Area of improvements:
+ * Description contains 267 &lt;fields&gt; defined without associated &lt;enumeratedValues&gt;
+ Found 0 Errors and 1 Warnings
+ Return Code: 1 (WARNINGS)</pre> <br/>
+</li>
+<li>Generate the header file. Performs a consistency check. Errors and warnings are printed on screen. <div class="fragment"><div class="line">SVDConv.exe ARM_Example.svd --generate=header</div>
+</div><!-- fragment --> <br/>
+ Code snippet from the generated header file showing the structure for <b>TIMER0</b>. <br/>
+ <div class="fragment"><div class="line"><span class="comment">/* ================ TIMER0 ================ */</span></div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{ </div>
+<div class="line"> __IO uint32_t CR; </div>
+<div class="line"> __IO uint16_t SR; </div>
+<div class="line"> __I uint16_t RESERVED0[5];</div>
+<div class="line"> __IO uint16_t INT; </div>
+<div class="line"> __I uint16_t RESERVED1[7];</div>
+<div class="line"> __IO uint32_t COUNT; </div>
+<div class="line"> __IO uint32_t MATCH; </div>
+<div class="line"> <span class="keyword">union </span>{</div>
+<div class="line"> __O uint32_t PRESCALE_WR; </div>
+<div class="line"> __I uint32_t PRESCALE_RD; </div>
+<div class="line"> };</div>
+<div class="line"> __I uint32_t RESERVED2[9];</div>
+<div class="line"> __IO uint32_t RELOAD[4]; </div>
+<div class="line">} TIMER0_Type;</div>
+</div><!-- fragment --> <br/>
+</li>
+<li>Generate the header file containing bit fields. Performs a consistency check. Errors and warnings are printed on screen. <div class="fragment"><div class="line">SVDConv.exe ARM_Example.svd --generate=header --fields=<span class="keyword">struct</span></div>
+</div><!-- fragment --> <br/>
+ Code snippet from the generated header file showing the structure for <b>TIMER0</b>. <br/>
+ Compare to the code snippet above. <div class="fragment"><div class="line"><span class="comment">/* ================ TIMER0 ================ */</span></div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{ </div>
+<div class="line"> <span class="keyword">union </span>{</div>
+<div class="line"> __IO uint32_t CR; </div>
+<div class="line"> <span class="keyword">struct </span>{</div>
+<div class="line"> __IO uint32_t EN : 1; </div>
+<div class="line"> __O uint32_t RST : 1; </div>
+<div class="line"> __IO uint32_t CNT : 2; </div>
+<div class="line"> __IO uint32_t MODE : 3; </div>
+<div class="line"> __IO uint32_t PSC : 1; </div>
+<div class="line"> __IO uint32_t CNTSRC : 4; </div>
+<div class="line"> __IO uint32_t CAPSRC : 4; </div>
+<div class="line"> __IO uint32_t CAPEDGE : 2; </div>
+<div class="line"> uint32_t : 2;</div>
+<div class="line"> __IO uint32_t TRGEXT : 2; </div>
+<div class="line"> uint32_t : 2;</div>
+<div class="line"> __IO uint32_t RELOAD : 2; </div>
+<div class="line"> __IO uint32_t IDR : 2; </div>
+<div class="line"> uint32_t : 3;</div>
+<div class="line"> __IO uint32_t S : 1; </div>
+<div class="line"> } CR_b; </div>
+<div class="line"> };</div>
+<div class="line"> </div>
+<div class="line"> <span class="keyword">union </span>{</div>
+<div class="line"> __IO uint16_t SR; </div>
+<div class="line"> <span class="keyword">struct </span>{</div>
+<div class="line"> __I uint16_t RUN : 1; </div>
+<div class="line"> uint16_t : 7;</div>
+<div class="line"> __IO uint16_t MATCH : 1; </div>
+<div class="line"> __IO uint16_t UN : 1; </div>
+<div class="line"> __IO uint16_t OV : 1; </div>
+<div class="line"> uint16_t : 1;</div>
+<div class="line"> __I uint16_t RST : 1; </div>
+<div class="line"> uint16_t : 1;</div>
+<div class="line"> __I uint16_t RELOAD : 2; </div>
+<div class="line"> } SR_b; </div>
+<div class="line"> };</div>
+<div class="line"> __I uint16_t RESERVED0[5];</div>
+<div class="line"> </div>
+<div class="line"> <span class="keyword">union </span>{</div>
+<div class="line"> __IO uint16_t INT; </div>
+<div class="line"> <span class="keyword">struct </span>{</div>
+<div class="line"> __IO uint16_t EN : 1; </div>
+<div class="line"> uint16_t : 3;</div>
+<div class="line"> __IO uint16_t MODE : 3; </div>
+<div class="line"> } INT_b; </div>
+<div class="line"> };</div>
+<div class="line"> __I uint16_t RESERVED1[7];</div>
+<div class="line"> __IO uint32_t COUNT; </div>
+<div class="line"> __IO uint32_t MATCH; </div>
+<div class="line"> <span class="keyword">union </span>{</div>
+<div class="line"> __O uint32_t PRESCALE_WR; </div>
+<div class="line"> __I uint32_t PRESCALE_RD; </div>
+<div class="line"> };</div>
+<div class="line"> __I uint32_t RESERVED2[9];</div>
+<div class="line"> __IO uint32_t RELOAD[4]; </div>
+<div class="line">} TIMER0_Type;</div>
+</div><!-- fragment --> </li>
+</ol>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/svd_revisionHistory.html b/docs/SVD/html/svd_revisionHistory.html
new file mode 100644
index 0000000..ca2a44b
--- /dev/null
+++ b/docs/SVD/html/svd_revisionHistory.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Revision History</title>
+<title>CMSIS-SVD: Revision History</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('svd_revisionHistory.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Revision History </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>From a schema perspective, CMSIS-SVD Version 1.1, 1.2 and 1.3 are fully backward compatible to version 1.0.</p>
+<table class="cmtable" summary="Revision History table">
+<tr>
+<th>Version </th><th>Description </th></tr>
+<tr>
+<td>V1.3.3 </td><td><ul>
+<li>Updated file header to Apache 2.0 License.</li>
+<li>Added <em>dimableIdentifierType</em>, as a copy of previous <em>identifierType</em> adding "%s".</li>
+<li>Updated <em>identifierType</em> to only allow names without "%s" included.</li>
+<li>Removed <em>enumerationNameType</em>.</li>
+<li>Added <em>&lt;headerEnumName&gt;</em> to <a class="el" href="elem_registers.html#elem_enumeratedValues">enumeratedValues</a> and to <a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> for <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> arrays, overwriting hierarchically generated names.</li>
+<li>Added <em>&lt;dimName&gt;</em> to <a class="el" href="elem_special.html#dimElementGroup_gr">dimElementGroup</a>. Only valid in <a class="el" href="elem_registers.html#elem_cluster">cluster</a> context, ignored otherwise. </li>
+</ul>
+</td></tr>
+<tr>
+<td>V1.3.2 </td><td><ul>
+<li>Extended command line of SVDConv.exe for partition.h file generation.</li>
+<li>added <a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> to <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a>, <a class="el" href="elem_registers.html#elem_cluster">cluster</a>, and <a class="el" href="elem_registers.html#elem_register">register</a> to describe enumeration of array indices. </li>
+</ul>
+</td></tr>
+<tr>
+<td>V1.3.1 </td><td><ul>
+<li>Added <a class="el" href="elem_special.html#elem_protection">protection</a> element; extended with protection option <span class="XML-Token">p=privileged</span>.</li>
+<li>Added <a class="el" href="elem_special.html#elem_protection">protection</a> element to <a class="el" href="elem_peripherals.html#elem_addressBlock">addressBlock</a>.</li>
+<li>Fixed <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> name type to <em>identifierType</em> to support "%s" for peripheral arrays.</li>
+<li>Added Cortex-A class enumeration to <a class="el" href="elem_cpu.html">cpu</a>.</li>
+<li>added <a class="el" href="elem_special.html#elem_dimArrayIndex">dimArrayIndex</a> to <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a>, <a class="el" href="elem_registers.html#elem_cluster">cluster</a>, and <a class="el" href="elem_registers.html#elem_register">register</a> to describe enumeration of array indices. </li>
+</ul>
+</td></tr>
+<tr>
+<td>V1.3 </td><td><ul>
+<li>Extended <a class="el" href="elem_peripherals.html#elem_peripheral">peripheral</a> with <em>&lt;dim&gt;</em> to support arrays.</li>
+<li>Added nesting of <a class="el" href="elem_registers.html#elem_cluster">cluster</a> to support hierarchical register structures.</li>
+<li>Extended <a class="el" href="elem_cpu.html">cpu</a> with description of the <a class="el" href="elem_cpu.html#elem_sauRegionsConfig">sauRegionsConfig</a> (Secure Attribution Unit).</li>
+<li>Extended <a class="el" href="elem_special.html#registerPropertiesGroup_gr">register properties</a> with <a class="el" href="elem_special.html#elem_protection">protection</a> to reflect security aspects. </li>
+</ul>
+</td></tr>
+<tr>
+<td>V1.2 </td><td>Added optional elements for Cortex-M7 in <a class="el" href="elem_cpu.html">CPU</a>:<ul>
+<li><em>&lt;fpuDP&gt;</em></li>
+<li><em>&lt;icachePresent&gt;</em></li>
+<li><em>&lt;dcachePresent&gt;</em></li>
+<li><em>&lt;itcmPresent&gt;</em></li>
+<li><em>&lt;dtcmPresent&gt;</em> </li>
+</ul>
+</td></tr>
+<tr>
+<td>V1.1 </td><td>Many of the features added in version 1.1 are required for generating CMSIS-Core device header files from a CMSIS SVD description. It is expected that all CMSIS-SVD descriptions will comply with version 1.1 by now. </td></tr>
+<tr>
+<td>V1.0 </td><td>Initial version. </td></tr>
+</table>
+<p>&#160;</p>
+<hr/>
+ </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/svd_validate_file_pg.html b/docs/SVD/html/svd_validate_file_pg.html
new file mode 100644
index 0000000..db144b8
--- /dev/null
+++ b/docs/SVD/html/svd_validate_file_pg.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>SVD File Validation and Usage</title>
+<title>CMSIS-SVD: SVD File Validation and Usage</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('svd_validate_file_pg.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">SVD File Validation and Usage </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The description quality is key to success of the CMSIS-SVD format. Aspects of quality are:</p>
+<ul>
+<li>Syntactical and structural compliance with the specified CMSIS-SVD format.</li>
+<li>Consistency and correctness.</li>
+<li>Completeness.</li>
+<li>Level of detail.</li>
+</ul>
+<div class="title">Validation</div><p> Automated validations are done on two levels:</p>
+<ol type="1">
+<li><b>The CMSIS-SVD Schema File</b>: XML tools use the schema file for checking the syntactical and structural correctness of an XML file that claims compliance with a certain format. The schema file <em>CMSIS-SVD.xsd</em> is located in the folder <b>.\CMSIS\Utilities</b> of the <b>ARM::CMSIS</b> Pack. <br/>
+<br/>
+</li>
+<li><b>SVD Conversion Utility:</b> The conversion utility <a class="el" href="svd_SVDConv_pg.html">SVDConv.exe</a> checks the semantics and consistency of the data contained in a CMSIS-SVD file. <b>SVDConv.exe</b> is included in the CMSIS distribution.</li>
+</ol>
+<div class="title">Usage</div><p> CMSIS-SVD files can be used to generate:</p>
+<ol type="1">
+<li>CMSIS-compliant device header files from a CMSIS-SVD description. Refer to the conversion tool <a class="el" href="svd_SVDConv_pg.html">SVDConv.exe</a> for details. CMSIS device header files are developed and maintained by the silicon vendors. Therefore, the expectation is that this conversion is only of interest to these parties.</li>
+<li>Debug dialogs that communicate with a debugger. See below.</li>
+</ol>
+<p><b>System Views</b> <br/>
+<br/>
+ A number of tool vendors support the CMSIS-SVD format with their products. Refer to the tools documentation to find out how to use CMSIS-SVD descriptions with the debugger of your choice. Please regularly check for updates to the CMSIS Device Family Packs from the silicon vendor to to use the latest versions of the CMSIS-SVD files. <br/>
+ <br/>
+ <b>Generated Debug Dialog:</b> </p>
+<div class="image">
+<img src="SystemViewer_Generated.png" alt="SystemViewer_Generated.png"/>
+<div class="caption">
+uVision Debug Window generated from ARM_Example.svd</div></div>
+<p><br/>
+ </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/svd_xml_conventions_gr.html b/docs/SVD/html/svd_xml_conventions_gr.html
new file mode 100644
index 0000000..af40a27
--- /dev/null
+++ b/docs/SVD/html/svd_xml_conventions_gr.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>File Conventions</title>
+<title>CMSIS-SVD: File Conventions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-SVD
+ &#160;<span id="projectnumber">Version 1.3.3</span>
+ </div>
+ <div id="projectbrief">CMSIS System View Description</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('svd_xml_conventions_gr.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">File Conventions </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The section outlines the main conventions for writing the SVD description file.</p>
+<h1><a class="anchor" id="Names"></a>
+Names</h1>
+<p>All <b>name</b> tags must comp ly with the ANSI C identifier naming restrictions. In particular, they must not contain any spaces or special characters. This is necessary to support the generation of device header files thus providing consistency between the names being shown by the debugger and the symbols being used in the CMSIS compliant target software.</p>
+<h1><a class="anchor" id="Constants"></a>
+Constants</h1>
+<p>Number constants shall be entered in hexadecimal, decimal, or binary format. </p>
+<ul>
+<li>The Hexadecimal format is indicated by a leading <b><span class="XML-Token">0x</span></b>. </li>
+<li>The Binary format is indicated by a leading <b><span class="XML-Token">#</span></b>. </li>
+<li>All other formats are interpreted as decimal numbers. </li>
+<li>The element <em>&lt;enumeratedValue&gt;</em>.<em>&lt;value&gt;</em> can be used to define constants.</li>
+</ul>
+<h1><a class="anchor" id="Comments"></a>
+Comments</h1>
+<p>Comments have the standard XML format. </p>
+<ul>
+<li>Start a comment with <b><span class="XML-Token">&lt;!--</span></b>. </li>
+<li>End a comment with <b><span class="XML-Token">--&gt;</span></b>.</li>
+</ul>
+<h1><a class="anchor" id="_"></a>
+Empty Tags</h1>
+<ul>
+<li>Single tags are not supported (for example, <em>&lt;name\&gt;</em>).</li>
+<li>The tag content must not consist of an empty string. Omit optional tags instead.</li>
+</ul>
+<dl class="section remark"><dt>Remarks</dt><dd>The latest <a class="el" href="schema_1_2_gr.html">CMSIS-SVD Schema File</a> is provided alongside this document. </dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="svd_Format_pg.html">SVD Description (*.svd) Format</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-SVD by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/SVD/html/sync_off.png b/docs/SVD/html/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/docs/SVD/html/sync_off.png
Binary files differ
diff --git a/docs/SVD/html/sync_on.png b/docs/SVD/html/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/docs/SVD/html/sync_on.png
Binary files differ
diff --git a/docs/SVD/html/tab_a.png b/docs/SVD/html/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/docs/SVD/html/tab_a.png
Binary files differ
diff --git a/docs/SVD/html/tab_b.png b/docs/SVD/html/tab_b.png
new file mode 100644
index 0000000..e2b4a86
--- /dev/null
+++ b/docs/SVD/html/tab_b.png
Binary files differ
diff --git a/docs/SVD/html/tab_h.png b/docs/SVD/html/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/docs/SVD/html/tab_h.png
Binary files differ
diff --git a/docs/SVD/html/tab_s.png b/docs/SVD/html/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/docs/SVD/html/tab_s.png
Binary files differ
diff --git a/docs/SVD/html/tab_topnav.png b/docs/SVD/html/tab_topnav.png
new file mode 100644
index 0000000..b257b77
--- /dev/null
+++ b/docs/SVD/html/tab_topnav.png
Binary files differ
diff --git a/docs/SVD/html/tabs.css b/docs/SVD/html/tabs.css
new file mode 100644
index 0000000..ffbab50
--- /dev/null
+++ b/docs/SVD/html/tabs.css
@@ -0,0 +1,71 @@
+.tabs, .tabs1, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 10px;
+}
+
+.tabs1 {
+ background-image: url('tab_topnav.png');
+ font-size: 12px;
+}
+
+.tabs2 {
+ font-size: 10px;
+}
+.tabs3 {
+ font-size: 9px;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+ line-height: 24px;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ list-style: none;
+}
+
+.tabs1 .tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_topnav.png');
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #283A5D;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+}
+
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}