<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-head-rift-auto-fr-03" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- ***** FRONT MATTER ***** -->

 <front>
    <title abbrev="RIFT Auto-FR">RIFT Auto-Flood Reflection</title>
    <seriesInfo name="Internet-Draft" value="draft-head-rift-auto-fr-03"/>
    <author role="editor" fullname="Jordan Head" initials="J." surname="Head">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way
          </street>
          <city>Sunnyvale</city>
          <region>CA
          </region>
          <code/>
          <country>USA
          </country>
        </postal>
        <phone/>
        <email>jhead@juniper.net
        </email>
        <uri/>
      </address>
    </author>
    <author fullname="Tony Przygienda" initials="T." surname="Przygienda">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way
          </street>
          <city>Sunnyvale</city>
          <region>CA
          </region>
          <code/>
          <country>USA
          </country>
        </postal>
        <phone/>
        <email>prz@juniper.net
        </email>
        <uri/>
      </address>
    </author>
    <author fullname="Colby Barth" initials="C." surname="Barth">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way
          </street>
          <city>Sunnyvale</city>
          <region>CA
          </region>
          <code/>
          <country>USA
          </country>
        </postal>
        <phone/>
        <email>cbarth@juniper.net
        </email>
        <uri/>
      </address>
    </author>
    <date year="2023"/>
    <area>Routing Area</area>
    <workgroup>RIFT</workgroup>
    <keyword>rift</keyword>
    <keyword>auto-fr</keyword>
    <keyword>auto-flood reflection</keyword>
    <abstract>
      <t>This document specifies procedures where RIFT can automatically 
        provision IS-IS Flood Reflection topologies by leveraging its 
        native no-touch ZTP architecture.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t><xref target="RIFT"/> is a protocol that focuses heavily on operational 
        simplicity. It natively supports Zero Touch Provisioning (ZTP) functionality that
        allows each node to automatically derive its place in the topology and 
        configure itself accordingly when properly cabled as a Clos, Fat-Tree, or other 
        similarly structured variant.</t>
      <t><xref target="RFC9377">IS-IS Flood Reflection</xref> is a mechanism 
        that enables flat single-area Level 2 IS-IS topologies to scale well beyond 
        their typical properties when deployed in similar topological structures by:</t>
      <ol>
          <li>Reducing the number of required links and adjacencies.</li>
        <li>Reducing the size of the Link-State Database.</li>
        <li>Reducing the amount of flooding.</li>
        <li>Reducing the number of SPF computations.</li>
        <li>Reducing the maximum SPF computation time.</li>
      </ol>
      <t>RIFT Auto-Flood Reflection (Auto-FR) combines these technologies by 
          using RIFT's ZTP functionality in order to automatically provision IS-IS Flood 
          Reflection topologies in a completely distributed fashion.</t>
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
       document are to be interpreted as described in <xref target="RFC2119" format="default">RFC 2119</xref>.</t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Design Considerations</name>
      <t>IS-IS Flood Reflection operates using Flood Reflectors at the top of the 
        fabric and Flood Reflector Clients at the bottom of the fabric. Any nodes 
        in the middle are not required to support Flood Reflection functionality, 
        nor do they need to support Auto-FR.
      </t>
      <t>Nodes in a Flood Reflection topology require specific variables 
        for deployment. For example, a Cluster ID that is unique to the 
        particular fabric or loopback addresses that are unique to a particular 
        node. RIFT has enough topological information to derive these variables 
        with the appropriate scope in a distributed fashion automatically.
      </t>
      <t>Once the Flood Reflection topology is built, RIFT Key-Value TIEs can be 
        used to distribute operational state information to allow for cluster-wide  
        validation without any additional tooling.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>Auto-FR Device Roles</name>
      <t>Auto-FR requires that each node understands its given role within the 
        scope of the Flood Reflection deployment, so each node derives the necessary 
        variables and resulting configuration.</t>
      <section>
        <name>All Participating Nodes</name>
        <t>
          Not all nodes have to participate in Auto-FR, however, if a node does 
          assume an Auto-FR role, it MUST be capable of deriving the following variables:
        </t>
        <ul empty="true" spacing="normal">
          <li>
            <dl newline="true" spacing="normal">
              <dt>
                <strong>Flood Reflection Cluster ID</strong>
              </dt>
              <dd>The Flood Reflection Cluster ID us to distinguish reflection 
                domains (similar to the Cluster ID use in BGP Route Reflection).
              </dd>
              <dt>
                <strong>IPv6 Loopback Address</strong>
              </dt>
              <dd>Unique IPv6 loopback address.</dd>
              <dt>
                <strong>IS-IS System ID</strong>
              </dt>
              <dd>The IS-IS System Identifier used in deriving the IS-IS NET Address.</dd>
              <dt>
                <strong>IS-IS NET Address</strong>
              </dt>
              <dd>The IS-IS NET Address used to uniquely identify an IS-IS node.</dd>
            </dl>
          </li>
        </ul>
      </section>
      <section>
        <name>Flood Reflectors</name>
        <t>This section defines an Auto-FR role whereby some ToF (Top-of-Fabric) nodes 
          act as IS-IS Flood Reflectors. It is expected that Flood Reflectors 
          will establish Level 2 IS-IS adjacencies with Flood Reflector Clients 
          in the same area, in the same fabric. The typical Flood Reflector 
          requirements do not change, however, determining which specific values 
          to use requires further consideration.</t>
        <t>ToF nodes performing Flood Reflector functionality MUST derive the 
          following variables:</t>
        <ul empty="true" spacing="normal">
          <li>
            <dl newline="true" spacing="normal">
              <dt>
                <strong>IPv6 Flood Reflector Loopback Address</strong>
              </dt>
              <dd>Unique IPv6 loopback address.</dd>
            </dl>
          </li>
        </ul>
      </section>
      <section>
        <name>Flood Reflector Spines</name>
        <t>In the context of Auto-FR, a "spine" can simply be desribed as an 
          Auto-FR node not running as a Flood Reflector (ToF) or Flood Reflector 
          Client (leaf). While RIFT Auto-FR is not required to run on spine nodes and as such 
          a spine role has no specific variables to derive at this time, it may 
          be desirable to do so to facilitate the use of Auto-FR specific Key-Value TIEs.
        </t>
        <t>This section also serves as a placeholder for future considerations 
          and enhancements.
        </t>
        <ul empty="true" spacing="normal">
          <li>
            <dl newline="true" spacing="normal">
              <dt>
                <strong>Future Consideration</strong>
              </dt>
              <dd>Future Consideration</dd>
            </dl>
          </li>
        </ul>
      </section>
      <section>
        <name>Flood Reflectors Clients</name>
        <t>Although no specific variables for Flood Reflector Clients are 
          described at this time, the generic role is specified as a placeholder 
          for future enhancements.
        </t>
        <ul empty="true" spacing="normal">
          <li>
            <dl newline="true" spacing="normal">
              <dt>
                <strong>Future Consideration</strong>
              </dt>
              <dd>Future Consideration</dd>
            </dl>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>Auto-FR Variable Derivation</name>
      <t>As previously mentioned, not all nodes are required to derive all 
        variables in a network. For example, spine nodes may only be required 
        for transit traffic and not need to support Auto-FR at all. All 
        variables are derived from RIFT's FSM or ZTP mechanism, so no additional 
        flooding other than RIFT's typical flooding is required.</t>
      <t>It is also important to mention that all variable derivation is in some 
        way based on the RIFT System ID and/or Cluster ID and MUST comply precisely 
        with calculation methods specified in the 
        <xref target="apx-auto-fr-variable-derivation" format="title"/> section 
        to allow interoperability between different implementations. All 
        necessary foundational code elements are also mentioned there.</t>
      <section>
        <name>RIFT System ID</name>
        <t>The 64-bit RIFT System ID that uniquely identifies a node as defined in 
          <xref target="RIFT">RIFT</xref>. This not derived specifically for Auto-FR, 
          but for all RIFT nodes and is used in the derivation procedures 
          described in this section.</t>
      </section>
      <section anchor="auto_fr_version">
        <name>Auto-FR Version</name>
        <t>This section describes extensions to both the RIFT LIE and Node-TIE packet schemas in the form
          of a 16-bit value that identifies the Auto-FR Version. Auto-FR capable nodes MUST support
          this extension, but MAY choose not to advertise it in LIEs and Node-TIEs when Auto-FR is not being
          utilized.</t>
        <t>The complete encoding.thrift schema documented in <xref target="RIFT">RIFT</xref> describes 
        both major and minor protocol/schema versions. Auto-FR Version calculation is done by multiiplying 
        a static value of 256 by the major version then adding the minor version, that is to say - 256 * MAJOR + MINOR.</t>
        <t>This section also describes an extension to the NodeCapabilities schema indicating whether 
          or not a node supports Auto-FR.
        </t>
        <t>The <xref target="apx-auto-fr-thrift-models">appendix</xref> details necessary changes
            to the LIEPacket, NodeTIEElement, and NodeCapabilities Thrift schemas.</t>
      </section>
      <section anchor="auto_fr_cluster_id">
        <name>Flood Reflection Cluster ID</name>
        <t>This section describes extensions to both the RIFT LIE and Node-TIE packet schemas in the form
          of a 32-bit value that identifies the Auto-FR Cluster ID. Auto-FR capable nodes MUST support
          this extension, but MAY choose not to advertise it in LIEs and Node-TIEs when Auto-FR is not being
          utilized.</t>
        <t>Deployments using more than one Auto-FR cluster MUST use different Cluster IDs. Failure to do so 
          may cause sub-optimal routing as L1/L2 nodes from different clusters would belong to the same subnet.
        </t>
        <t>A Cluster ID with a value of 0 is considered invalid and MUST NOT be 
          used for any purpose.
        </t>
        <t>The <xref target="apx-auto-fr-thrift-models">appendix</xref> details necessary changes
          to the LIEPacket and NodeTIEElement Thrift schemas.</t>
      </section>
      <section anchor="auto_fr_preference">
        <name>Flood Reflection Preference</name>
        <t>This section describes extensions to the Node-TIE packet schema in the form of 
          a 32-bit value that indicates a Flood Reflection Preference value to be used 
          during Flood Reflector election procedures with the higher value being preferred.
          Auto-FR capable nodes MUST support this extension.
        </t>
        <t>The <xref target="apx-auto-fr-thrift-models">appendix</xref> details necessary changes
          to the NodeTIEElement Thrift schemas.</t>
      </section>
      <section>
        <name>IS-IS System ID</name>
        <t>Auto-FR nodes MUST derive a unique 8-byte IS-IS System ID for use in deriving the IS-IS 
          NET Address. Calculation is done using the 8-byte RIFT System ID and 4-byte 
          Cluster ID.
        </t>
        <t>In order for nodes to derive an IS-IS System ID, the following algorithms are required - 
          <xref target="auto_fr_cidsid2isissid">auto_fr_cidsid2isissid</xref> and 
          <xref target="auto_fr_v6hash">auto_fr_v6hash</xref>.
        </t>
      </section>
      <section>
        <name>IS-IS NET Address</name>
        <t>Auto-FR nodes MUST derive a unique 10-byte IS-IS NET (Network Entity Title) Address to uniquely 
          identify itself within the Flood Reflection topology. The 1st byte (which indicates the AFI) MUST
          have a value of "49". The last byte (i.e. the NSEL) MUST have a value of 0. Remaining 
          calculation is done using the 8-byte RIFT System ID and 4-byte Cluster ID.</t>
        <t>In order for nodes to derive an IS-IS NET Address, the following algorithms are required - 
          <xref target="auto_fr_cidsid2isisnet">auto_fr_cidsid2isisnet</xref> and 
          <xref target="auto_fr_cidsid2isissid">auto_fr_cidsid2isissid</xref>.
        </t>
      </section>
      <section>
        <name>Loopback Address</name>
        <t>Auto-FR nodes MUST derive a ULA-scoped IPv6 loopback address to be 
          used in IS-IS. Calculation is done using the 6-bytes of
          reserved ULA space, the 4-byte Cluster ID, and the node's 8-byte RIFT System ID. Derivation of the IS-IS System ID
          varies slightly depending upon the node's location/role in the fabric and will be described in subsequent
          sections.</t>
        <section>
          <name>Leaf Nodes as Flood Reflector Clients</name>
          <t>
            Leaf Nodes acting as Flood Reflector Clients MUST derive their loopback address 
            according to the specific section describing the algorithm. Calculation is done 
            using the 6-bytes of reserved ULA space, the 4-byte Cluster ID, and the 8-byte RIFT System ID.</t>
          <t>In order for leaf nodes to derive IPv6 loopbacks, the following algorithms are required - 
            <xref target="auto_fr_cidsidv6loopback">auto_fr_cidsidv6loopback</xref> and 
            <xref target="auto_fr_v6prefixcidsid2loopback">auto_fr_v6prefixcidsid2loopback</xref>.</t>
          <t>IPv4 addresses MAY be supported, but it should be noted that they have a higher likelihood of collision. The appendix 
            contains the required <xref target="auto_fr_cidsid2v4loopback">auto_fr_cidsid2v4loopback</xref> algorithm to support IPv4 loopback 
            derivation.</t>
        </section>
        <section anchor="auto-fr-tof-fr-election">
          <name>ToF Nodes as Flood Reflectors</name>
          <t>ToF nodes acting as Flood Reflectors MUST derive their loopback 
            address according to the specific section describing the algorithm.
            Calculation is done using the 6-bytes of reserved ULA space, the 4-byte Cluster ID, and
            the 8-byte RIFT System ID.</t>
          <t>In order for ToF nodes to derive IPv6 loopbacks, the following algorithms are required - <xref target="auto_fr_cidsidv6loopback">auto_fr_cidsidv6loopback</xref>, 
            <xref target="auto_fr_v6prefixcidsid2loopback">auto_fr_v6prefixcidsid2loopback</xref>, and 
            <xref target="auto_fr_cidfrpref2frv6loopback">auto_fr_cidfrpref2frv6loopback</xref>.</t>
          <t>IPv4 addresses MAY be supported, but it should be noted that they have a higher likelihood of collision. The appendix 
            contains the required <xref target="auto_fr_cidfrpref2frv4loopback">auto_fr_cidfrpref2frv4loopback</xref> algorithm to support IPv4 loopback 
            derivation.</t>
          <section>
            <name>Flood Reflector Election Procedures</name>
            <t>
              Each ToF performs the election independently based on the RIFT System IDs and 
              a Flood Reflection preference value of other ToF nodes in the 
              fabric obtained via southbound reflection. The Flood Reflector 
              election procedures are defined as follows:</t>
            <ol>
              <li>Highest System ID with the highest preference.</li>
              <li>Lowest System ID with the highest preference.</li>
              <li>2nd highest System ID with the 2nd highest preference.</li>
              <li>etc.</li>
            </ol>
            <t>This ordering is necessary to prevent a single node with either 
              the highest or lowest System ID from triggering changes to flood 
              reflector loopback addresses as it would result in all IS-IS 
              adjacencies flapping.</t>
            <t>For example, if ToF01 (System ID: 002c6af5a281c000 / FR Preference: 100) and 
              ToF02 (System ID: 002c6bf5788fc000 / FR Preference: 1) went through the election process,
              ToF02 would be elected due to it having the highest System ID. If a ToF determines 
              that it is elected as a Flood Reflector, it uses the knowledge of its position in the list to
              derive Flood Reflector IPv6 loopback address.</t>
            <t>A topology MUST elect at least 1 ToF node as an IS-IS Flood Reflector, but 
              SHOULD elect 3. The election process varies depending upon whether or not the topology 
              is comprised of a single plane or multiple planes. The multiplane election procedure 
              will be described in a future version of this document.
            </t>
            <t>The algorithm shown in <xref target="auto_fr_sids2frs">"auto_fr_sids2frs"</xref> is required to 
              perform the Flood Reflector election procedures.</t>
          </section>
        </section>
      </section>
    </section>
    <section>
      <name>RIFT Requirements</name>
      <section>
        <name>RIFT FSM / LIE Validation Requirements</name>
        <t>
          RIFT FSM adjacency rules MUST consider 
          <xref target="auto_fr_version">Auto-FR Version</xref> and <xref target="auto_fr_cluster_id">Auto-FR Cluster ID</xref> 
          values so that nodes that do not support Auto-FR can interoperate with nodes 
          that do. The LIE validation is extended with the following clause and if it is 
          not met, miscabling should be declared:
        </t>
        <sourcecode>
(if auto_flood_reflection_version is not advertised by either node OR
 if auto_flood_reflection_version is identical on both nodes)
    AND
(auto_flood_reflection_cluster_id is not advertised by either node OR
 auto_flood_reflection_cluster_id is identical on both nodes)
</sourcecode>
      </section>
      <section>
        <name>RIFT Node-TIE Advertisements</name>
        <t>All nodes utilizing Auto-FR MUST advertise their <xref target="auto_fr_version">Auto-FR Version</xref>, 
          <xref target="auto_fr_cluster_id">Flood Reflection Cluster ID</xref>, and 
          <xref target="auto_fr_preference">Flood Reflection Preference</xref> values 
          in at least one Node-TIE in each direction (i.e. North and South).</t>
      </section>
    </section>
    <section>
      <name>Operational Considerations</name>
      <t>To fully realize the benefits of Auto-FR, it may help to describe the 
      high-level method. Simply put, RIFT automatically provisions the underlay 
      and Auto-FR provisions the Flood Reflection topology. The goal of this section is to draw 
      simple lines between general fabric concepts, RIFT, and Auto-FR and how they 
      fit into current network designs and practices.</t>
      <t>This section also describes a set of optional <xref target="RIFT-KV">Key-Value TIEs</xref> that leverages 
      the variables that have already been derived to provide further operational 
      enhancement to the operator.
      </t>
      <section>
        <name>RIFT Underlay and IS-IS Flood Reflection Topology</name>
        <figure anchor="auto-fr-example-topology">
          <name>Auto-FR Example Topology</name>
          <artset>
            <artwork align="left" name="" type="svg" originalSrc="art/rift-auto-fr-op-example-topology.svg"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.2" baseProfile="tiny" id="Layer_1" viewBox="0 0 831 681" xml:space="preserve">
                <g>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M780.5,440.5L570.3,280.8"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M530.5,440.5l210.2-159.8"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M170.5,50.5l-120,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M170.5,50.5l130,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M170.5,50.5l360,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M170.5,50.5l610,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M650.5,50.5l130,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M650.5,50.5l-120,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M650.5,50.5l-350,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M650.5,50.5l-600,200"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M50.5,440.5l210.2-159.8"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M300.5,440.5l-250-190"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M300.5,300.5v90"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M530.5,300.5v90"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M780.5,300.5v90"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M50.5,390.5v-90"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M50.5,490.5v90"/>
                  <path fill="none" stroke="#000000" stroke-miterlimit="10" d="M530.5,490.5v90"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="50.5" cy="250.5" r="50.1"/>
                <g>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M50.5,440.5   c-60-166.7-20-296.7,120-390"/>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M530.5,440.5   c-60-166.7-180-296.7-360-390"/>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M300.5,440.5   c-113.3-166.7-156.7-296.7-130-390"/>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M780.5,440.5   c-60-166.7-263.3-296.7-610-390"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="780.5" cy="250.5" r="50.1"/>
                <g>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M780.5,440.5   c53.3-200,10-330-130-390"/>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M530.5,440.5   c73.3-160,113.3-290,120-390"/>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M50.5,440.5   c86.7-186.7,286.7-316.7,600-390"/>
                  <path fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="9,9" d="M300.5,440.5   c100-193.3,216.7-323.3,350-390"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="50.5" cy="440.5" r="50.1"/>
                <g>
                  <path d="M27.3,427.7h-6.7V417H22v9.4h5.3V427.7z"/>
                  <path d="M35.3,423.8h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L35.3,423.8z M34,422.8c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6L34,422.8z"/>
                  <path d="M43.6,427.7h-1.3v-0.9c-0.1,0.1-0.3,0.2-0.5,0.3c-0.2,0.1-0.4,0.3-0.6,0.3c-0.2,0.1-0.5,0.2-0.8,0.3   c-0.3,0.1-0.6,0.1-1,0.1c-0.7,0-1.3-0.2-1.8-0.7c-0.5-0.5-0.8-1.1-0.8-1.8c0-0.6,0.1-1.1,0.4-1.5c0.3-0.4,0.6-0.7,1.1-0.9   c0.5-0.2,1.1-0.4,1.8-0.4c0.7-0.1,1.4-0.1,2.2-0.2v-0.2c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.4-0.5-0.5c-0.2-0.1-0.4-0.2-0.7-0.2   s-0.5-0.1-0.8-0.1c-0.4,0-0.7,0-1.2,0.1c-0.4,0.1-0.9,0.2-1.3,0.4h-0.1v-1.4c0.3-0.1,0.6-0.2,1.1-0.2c0.5-0.1,1-0.1,1.5-0.1   c0.6,0,1.1,0,1.5,0.1c0.4,0.1,0.8,0.2,1.1,0.5c0.3,0.2,0.5,0.5,0.7,0.9c0.2,0.3,0.2,0.8,0.2,1.3L43.6,427.7z M42.2,425.7v-2.2   c-0.4,0-0.9,0.1-1.5,0.1c-0.6,0-1,0.1-1.3,0.2c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.5-0.4,1c0,0.5,0.1,0.8,0.4,1   c0.3,0.2,0.7,0.3,1.3,0.3c0.5,0,0.9-0.1,1.3-0.3C41.5,426.2,41.9,426,42.2,425.7L42.2,425.7z"/>
                  <path d="M50.5,417.8L50.5,417.8c-0.2,0-0.4-0.1-0.7-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.6,0-1,0.1-1.3,0.4c-0.3,0.3-0.4,0.7-0.4,1.4v0.3   H50v1.1h-2.4v6.9h-1.3v-6.9h-0.9v-1.1h0.9v-0.3c0-1,0.2-1.7,0.7-2.2c0.5-0.5,1.2-0.8,2-0.8c0.3,0,0.6,0,0.8,0   c0.2,0,0.5,0.1,0.7,0.1L50.5,417.8z"/>
                  <path d="M55.6,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M64.4,427.7h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L64.4,427.7z"/>
                  <path d="M71.6,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M80.4,427.7h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L80.4,427.7z"/>
                  <path d="M37.9,446h-6.7v-10.7h1.4v9.4h5.3L37.9,446z"/>
                  <path d="M45.7,446h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L45.7,446z"/>
                  <path d="M53.4,434.9l-5.1,13.3H47l5.1-13.3H53.4z"/>
                  <path d="M62.1,446h-6.7v-10.7h1.4v9.4h5.3L62.1,446z"/>
                  <path d="M70.4,446h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L70.4,446z"/>
                  <path d="M39.2,463.6c-0.3,0.1-0.5,0.2-0.7,0.3c-0.2,0.1-0.5,0.2-0.8,0.3c-0.3,0.1-0.6,0.2-1,0.2c-0.3,0.1-0.7,0.1-1.1,0.1   c-0.8,0-1.5-0.1-2.1-0.3c-0.6-0.2-1.2-0.6-1.6-1c-0.5-0.5-0.8-1-1.1-1.7c-0.3-0.7-0.4-1.5-0.4-2.4c0-0.9,0.1-1.7,0.4-2.4   c0.2-0.7,0.6-1.3,1.1-1.8c0.5-0.5,1-0.8,1.6-1.1c0.6-0.2,1.4-0.4,2.1-0.4c0.6,0,1.1,0.1,1.7,0.2c0.6,0.1,1.2,0.4,1.9,0.7v1.7h-0.1   c-0.6-0.5-1.2-0.8-1.7-1.1c-0.6-0.2-1.2-0.3-1.9-0.3c-0.5,0-1,0.1-1.5,0.3c-0.4,0.2-0.8,0.4-1.2,0.8c-0.3,0.4-0.6,0.8-0.8,1.4   c-0.2,0.5-0.3,1.2-0.3,1.9c0,0.7,0.1,1.4,0.3,1.9c0.2,0.5,0.5,1,0.8,1.3c0.3,0.4,0.7,0.6,1.2,0.8c0.4,0.2,0.9,0.3,1.4,0.3   c0.7,0,1.3-0.1,1.9-0.4c0.6-0.2,1.2-0.6,1.7-1.1h0.1L39.2,463.6z"/>
                  <path d="M42.4,464.3h-1.3v-11.1h1.3V464.3z"/>
                  <path d="M46.6,455H45v-1.4h1.5V455z M46.5,464.3h-1.3v-8h1.3V464.3z"/>
                  <path d="M55.9,460.5H50c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5s-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L55.9,460.5z M54.5,459.4c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H54.5z"/>
                  <path d="M64.6,464.3h-1.3v-4.6c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c0.9,0,1.5,0.3,2,0.8c0.5,0.5,0.7,1.3,0.7,2.2L64.6,464.3z"/>
                  <path d="M71.3,464.3c-0.3,0.1-0.5,0.1-0.8,0.2c-0.3,0-0.6,0.1-0.8,0.1c-0.8,0-1.4-0.2-1.9-0.7c-0.4-0.4-0.6-1.1-0.6-2.1v-4.3h-0.9   v-1.1h0.9V454h1.3v2.3h2.8v1.1h-2.8v3.6c0,0.4,0,0.7,0,1c0,0.2,0.1,0.5,0.2,0.7c0.1,0.2,0.2,0.3,0.4,0.4c0.2,0.1,0.5,0.1,0.8,0.1   c0.2,0,0.4,0,0.7-0.1c0.2-0.1,0.4-0.1,0.5-0.2h0.1L71.3,464.3z"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="300.5" cy="440.5" r="50.1"/>
                <g>
                  <path d="M277,427.7h-6.7V417h1.4v9.4h5.3V427.7z"/>
                  <path d="M285,423.8h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7V423.8z    M283.7,422.8c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6L283.7,422.8z"/>
                  <path d="M293.3,427.7h-1.3v-0.9c-0.1,0.1-0.3,0.2-0.5,0.3c-0.2,0.1-0.4,0.3-0.6,0.3c-0.2,0.1-0.5,0.2-0.8,0.3   c-0.3,0.1-0.6,0.1-1,0.1c-0.7,0-1.3-0.2-1.8-0.7c-0.5-0.5-0.8-1.1-0.8-1.8c0-0.6,0.1-1.1,0.4-1.5c0.3-0.4,0.6-0.7,1.1-0.9   c0.5-0.2,1.1-0.4,1.8-0.4c0.7-0.1,1.4-0.1,2.2-0.2v-0.2c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.4-0.5-0.5c-0.2-0.1-0.4-0.2-0.7-0.2   s-0.5-0.1-0.8-0.1c-0.4,0-0.7,0-1.2,0.1c-0.4,0.1-0.9,0.2-1.3,0.4h-0.1v-1.4c0.3-0.1,0.6-0.2,1.1-0.2c0.5-0.1,1-0.1,1.5-0.1   c0.6,0,1.1,0,1.5,0.1c0.4,0.1,0.8,0.2,1.1,0.5c0.3,0.2,0.5,0.5,0.7,0.9c0.2,0.3,0.2,0.8,0.2,1.3L293.3,427.7z M291.9,425.7v-2.2   c-0.4,0-0.9,0.1-1.5,0.1c-0.6,0-1,0.1-1.3,0.2c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.5-0.4,1c0,0.5,0.1,0.8,0.4,1   c0.3,0.2,0.7,0.3,1.3,0.3c0.5,0,0.9-0.1,1.3-0.3C291.2,426.2,291.6,426,291.9,425.7z"/>
                  <path d="M300.2,417.8L300.2,417.8c-0.2,0-0.4-0.1-0.7-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.6,0-1,0.1-1.3,0.4c-0.3,0.3-0.4,0.7-0.4,1.4   v0.3h2.4v1.1h-2.4v6.9h-1.3v-6.9H295v-1.1h0.9v-0.3c0-1,0.2-1.7,0.7-2.2c0.5-0.5,1.2-0.8,2-0.8c0.3,0,0.6,0,0.8,0   c0.2,0,0.5,0.1,0.7,0.1L300.2,417.8z"/>
                  <path d="M305.3,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M314.1,427.7h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L314.1,427.7z"/>
                  <path d="M321.3,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M330.8,427.7h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L330.8,427.7z"/>
                  <path d="M287.6,446h-6.7v-10.7h1.4v9.4h5.3V446z"/>
                  <path d="M295.4,446h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L295.4,446z"/>
                  <path d="M303.1,434.9l-5.1,13.3h-1.2l5.1-13.3H303.1z"/>
                  <path d="M311.8,446H305v-10.7h1.4v9.4h5.3V446z"/>
                  <path d="M320.1,446h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L320.1,446z"/>
                  <path d="M288.9,463.6c-0.3,0.1-0.5,0.2-0.7,0.3c-0.2,0.1-0.5,0.2-0.8,0.3c-0.3,0.1-0.6,0.2-1,0.2c-0.3,0.1-0.7,0.1-1.1,0.1   c-0.8,0-1.5-0.1-2.1-0.3c-0.6-0.2-1.2-0.6-1.6-1c-0.5-0.5-0.8-1-1.1-1.7c-0.3-0.7-0.4-1.5-0.4-2.4c0-0.9,0.1-1.7,0.4-2.4   s0.6-1.3,1.1-1.8c0.5-0.5,1-0.8,1.6-1.1c0.6-0.2,1.4-0.4,2.1-0.4c0.6,0,1.1,0.1,1.7,0.2c0.6,0.1,1.2,0.4,1.9,0.7v1.7h-0.1   c-0.6-0.5-1.2-0.8-1.7-1.1s-1.2-0.3-1.9-0.3c-0.5,0-1,0.1-1.5,0.3c-0.4,0.2-0.8,0.4-1.2,0.8c-0.3,0.4-0.6,0.8-0.8,1.4   c-0.2,0.5-0.3,1.2-0.3,1.9c0,0.7,0.1,1.4,0.3,1.9c0.2,0.5,0.5,1,0.8,1.3c0.3,0.4,0.7,0.6,1.2,0.8c0.4,0.2,0.9,0.3,1.4,0.3   c0.7,0,1.3-0.1,1.9-0.4s1.2-0.6,1.7-1.1h0.1L288.9,463.6z"/>
                  <path d="M292.1,464.3h-1.3v-11.1h1.3V464.3z"/>
                  <path d="M296.3,455h-1.5v-1.4h1.5V455z M296.2,464.3h-1.3v-8h1.3V464.3z"/>
                  <path d="M305.5,460.5h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5s-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L305.5,460.5z M304.2,459.4c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H304.2z   "/>
                  <path d="M314.3,464.3h-1.3v-4.6c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3s-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8c0.4-0.2,0.9-0.3,1.4-0.3c0.9,0,1.5,0.3,2,0.8   c0.5,0.5,0.7,1.3,0.7,2.2L314.3,464.3z"/>
                  <path d="M321,464.3c-0.3,0.1-0.5,0.1-0.8,0.2c-0.3,0-0.6,0.1-0.8,0.1c-0.8,0-1.4-0.2-1.9-0.7c-0.4-0.4-0.6-1.1-0.6-2.1v-4.3H316   v-1.1h0.9V454h1.3v2.3h2.8v1.1h-2.8v3.6c0,0.4,0,0.7,0,1c0,0.2,0.1,0.5,0.2,0.7c0.1,0.2,0.2,0.3,0.4,0.4c0.2,0.1,0.5,0.1,0.8,0.1   c0.2,0,0.4,0,0.7-0.1c0.2-0.1,0.4-0.1,0.5-0.2h0.1V464.3z"/>
                </g>
                <ellipse transform="matrix(0.1602 -0.9871 0.9871 0.1602 10.7113 893.5897)" fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="530.5" cy="440.5" rx="50.1" ry="50.1"/>
                <g>
                  <path d="M507.3,427.7h-6.7V417h1.4v9.4h5.3V427.7z"/>
                  <path d="M515.3,423.8h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L515.3,423.8z M514,422.8c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6   L514,422.8z"/>
                  <path d="M523.6,427.7h-1.3v-0.9c-0.1,0.1-0.3,0.2-0.5,0.3c-0.2,0.1-0.4,0.3-0.6,0.3c-0.2,0.1-0.5,0.2-0.8,0.3   c-0.3,0.1-0.6,0.1-1,0.1c-0.7,0-1.3-0.2-1.8-0.7c-0.5-0.5-0.8-1.1-0.8-1.8c0-0.6,0.1-1.1,0.4-1.5c0.3-0.4,0.6-0.7,1.1-0.9   c0.5-0.2,1.1-0.4,1.8-0.4s1.4-0.1,2.2-0.2v-0.2c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.4-0.5-0.5c-0.2-0.1-0.4-0.2-0.7-0.2   c-0.3,0-0.5-0.1-0.8-0.1c-0.4,0-0.7,0-1.2,0.1c-0.4,0.1-0.9,0.2-1.3,0.4h-0.1v-1.4c0.3-0.1,0.6-0.2,1.1-0.2c0.5-0.1,1-0.1,1.5-0.1   c0.6,0,1.1,0,1.5,0.1c0.4,0.1,0.8,0.2,1.1,0.5c0.3,0.2,0.5,0.5,0.7,0.9c0.2,0.3,0.2,0.8,0.2,1.3L523.6,427.7z M522.2,425.7v-2.2   c-0.4,0-0.9,0.1-1.5,0.1c-0.6,0-1,0.1-1.3,0.2c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.5-0.4,1c0,0.5,0.1,0.8,0.4,1   c0.3,0.2,0.7,0.3,1.3,0.3c0.5,0,0.9-0.1,1.3-0.3C521.5,426.2,521.9,426,522.2,425.7z"/>
                  <path d="M530.5,417.8L530.5,417.8c-0.2,0-0.4-0.1-0.7-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.6,0-1,0.1-1.3,0.4c-0.3,0.3-0.4,0.7-0.4,1.4   v0.3h2.4v1.1h-2.4v6.9h-1.3v-6.9h-0.9v-1.1h0.9v-0.3c0-1,0.2-1.7,0.7-2.2c0.5-0.5,1.2-0.8,2-0.8c0.3,0,0.6,0,0.8,0   c0.2,0,0.5,0.1,0.7,0.1V417.8z"/>
                  <path d="M535.6,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M545,427.7h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2s-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7V427.7z"/>
                  <path d="M551.6,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M560.5,427.7h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L560.5,427.7z"/>
                  <path d="M517.9,446h-6.7v-10.7h1.4v9.4h5.3L517.9,446z"/>
                  <path d="M525.7,446h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L525.7,446z"/>
                  <path d="M533.4,434.9l-5.1,13.3H527l5.1-13.3H533.4z"/>
                  <path d="M542.1,446h-6.7v-10.7h1.4v9.4h5.3L542.1,446z"/>
                  <path d="M550.4,446h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L550.4,446z"/>
                  <path d="M519.2,463.6c-0.3,0.1-0.5,0.2-0.7,0.3c-0.2,0.1-0.5,0.2-0.8,0.3c-0.3,0.1-0.6,0.2-1,0.2c-0.3,0.1-0.7,0.1-1.1,0.1   c-0.8,0-1.5-0.1-2.1-0.3c-0.6-0.2-1.2-0.6-1.6-1c-0.5-0.5-0.8-1-1.1-1.7c-0.3-0.7-0.4-1.5-0.4-2.4c0-0.9,0.1-1.7,0.4-2.4   c0.2-0.7,0.6-1.3,1.1-1.8c0.5-0.5,1-0.8,1.6-1.1c0.6-0.2,1.4-0.4,2.1-0.4c0.6,0,1.1,0.1,1.7,0.2c0.6,0.1,1.2,0.4,1.9,0.7v1.7h-0.1   c-0.6-0.5-1.2-0.8-1.7-1.1c-0.6-0.2-1.2-0.3-1.9-0.3c-0.5,0-1,0.1-1.5,0.3c-0.4,0.2-0.8,0.4-1.2,0.8c-0.3,0.4-0.6,0.8-0.8,1.4   c-0.2,0.5-0.3,1.2-0.3,1.9c0,0.7,0.1,1.4,0.3,1.9c0.2,0.5,0.5,1,0.8,1.3c0.3,0.4,0.7,0.6,1.2,0.8c0.4,0.2,0.9,0.3,1.4,0.3   c0.7,0,1.3-0.1,1.9-0.4s1.2-0.6,1.7-1.1h0.1L519.2,463.6z"/>
                  <path d="M522.4,464.3h-1.3v-11.1h1.3V464.3z"/>
                  <path d="M526.6,455h-1.5v-1.4h1.5V455z M526.5,464.3h-1.3v-8h1.3V464.3z"/>
                  <path d="M535.9,460.5H530c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L535.9,460.5z M534.5,459.4c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H534.5z   "/>
                  <path d="M544.6,464.3h-1.3v-4.6c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c0.9,0,1.5,0.3,2,0.8c0.5,0.5,0.7,1.3,0.7,2.2L544.6,464.3z"/>
                  <path d="M551.3,464.3c-0.3,0.1-0.5,0.1-0.8,0.2c-0.3,0-0.6,0.1-0.8,0.1c-0.8,0-1.4-0.2-1.9-0.7s-0.6-1.1-0.6-2.1v-4.3h-0.9v-1.1   h0.9V454h1.3v2.3h2.8v1.1h-2.8v3.6c0,0.4,0,0.7,0,1c0,0.2,0.1,0.5,0.2,0.7c0.1,0.2,0.2,0.3,0.4,0.4c0.2,0.1,0.5,0.1,0.8,0.1   c0.2,0,0.4,0,0.7-0.1c0.2-0.1,0.4-0.1,0.5-0.2h0.1L551.3,464.3z"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="780.5" cy="440.5" r="50.1"/>
                <g>
                  <path d="M757,427.7h-6.7V417h1.4v9.4h5.3L757,427.7z"/>
                  <path d="M765,423.8h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L765,423.8z M763.7,422.8c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6   L763.7,422.8z"/>
                  <path d="M773.3,427.7h-1.3v-0.9c-0.1,0.1-0.3,0.2-0.5,0.3c-0.2,0.1-0.4,0.3-0.6,0.3c-0.2,0.1-0.5,0.2-0.8,0.3   c-0.3,0.1-0.6,0.1-1,0.1c-0.7,0-1.3-0.2-1.8-0.7c-0.5-0.5-0.8-1.1-0.8-1.8c0-0.6,0.1-1.1,0.4-1.5c0.3-0.4,0.6-0.7,1.1-0.9   c0.5-0.2,1.1-0.4,1.8-0.4s1.4-0.1,2.2-0.2v-0.2c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.4-0.5-0.5c-0.2-0.1-0.4-0.2-0.7-0.2   s-0.5-0.1-0.8-0.1c-0.4,0-0.7,0-1.2,0.1c-0.4,0.1-0.9,0.2-1.3,0.4h-0.1v-1.4c0.3-0.1,0.6-0.2,1.1-0.2c0.5-0.1,1-0.1,1.5-0.1   c0.6,0,1.1,0,1.5,0.1c0.4,0.1,0.8,0.2,1.1,0.5c0.3,0.2,0.5,0.5,0.7,0.9c0.2,0.3,0.2,0.8,0.2,1.3L773.3,427.7z M771.9,425.7v-2.2   c-0.4,0-0.9,0.1-1.5,0.1c-0.6,0-1,0.1-1.3,0.2c-0.4,0.1-0.7,0.3-0.9,0.5c-0.2,0.2-0.4,0.5-0.4,1c0,0.5,0.1,0.8,0.4,1   c0.3,0.2,0.7,0.3,1.3,0.3c0.5,0,0.9-0.1,1.3-0.3C771.2,426.2,771.6,426,771.9,425.7L771.9,425.7z"/>
                  <path d="M780.2,417.8L780.2,417.8c-0.2,0-0.4-0.1-0.7-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.6,0-1,0.1-1.3,0.4c-0.3,0.3-0.4,0.7-0.4,1.4   v0.3h2.4v1.1h-2.4v6.9h-1.3v-6.9H775v-1.1h0.9v-0.3c0-1,0.2-1.7,0.7-2.2c0.5-0.5,1.2-0.8,2-0.8c0.3,0,0.6,0,0.8,0   c0.2,0,0.5,0.1,0.7,0.1V417.8z"/>
                  <path d="M785.3,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M794.7,427.7h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L794.7,427.7z"/>
                  <path d="M801.3,423.7h-4.5v-1.3h4.5V423.7z"/>
                  <path d="M810.8,427.7h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L810.8,427.7z"/>
                  <path d="M767.6,446h-6.7v-10.7h1.4v9.4h5.3L767.6,446z"/>
                  <path d="M775.3,446h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L775.3,446z"/>
                  <path d="M783.1,434.9l-5.1,13.3h-1.2l5.1-13.3H783.1z"/>
                  <path d="M791.8,446H785v-10.7h1.4v9.4h5.3L791.8,446z"/>
                  <path d="M800.1,446h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7V446z"/>
                  <path d="M768.9,463.6c-0.3,0.1-0.5,0.2-0.7,0.3c-0.2,0.1-0.5,0.2-0.8,0.3c-0.3,0.1-0.6,0.2-1,0.2c-0.3,0.1-0.7,0.1-1.1,0.1   c-0.8,0-1.5-0.1-2.1-0.3c-0.6-0.2-1.2-0.6-1.6-1c-0.5-0.5-0.8-1-1.1-1.7c-0.3-0.7-0.4-1.5-0.4-2.4c0-0.9,0.1-1.7,0.4-2.4   c0.2-0.7,0.6-1.3,1.1-1.8c0.5-0.5,1-0.8,1.6-1.1c0.6-0.2,1.4-0.4,2.1-0.4c0.6,0,1.1,0.1,1.7,0.2c0.6,0.1,1.2,0.4,1.9,0.7v1.7h-0.1   c-0.6-0.5-1.2-0.8-1.7-1.1s-1.2-0.3-1.9-0.3c-0.5,0-1,0.1-1.5,0.3c-0.4,0.2-0.8,0.4-1.2,0.8c-0.3,0.4-0.6,0.8-0.8,1.4   c-0.2,0.5-0.3,1.2-0.3,1.9c0,0.7,0.1,1.4,0.3,1.9c0.2,0.5,0.5,1,0.8,1.3c0.3,0.4,0.7,0.6,1.2,0.8c0.4,0.2,0.9,0.3,1.4,0.3   c0.7,0,1.3-0.1,1.9-0.4s1.2-0.6,1.7-1.1h0.1L768.9,463.6z"/>
                  <path d="M772.1,464.3h-1.3v-11.1h1.3V464.3z"/>
                  <path d="M776.3,455h-1.5v-1.4h1.5V455z M776.2,464.3h-1.3v-8h1.3V464.3z"/>
                  <path d="M785.5,460.5h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L785.5,460.5z M784.2,459.4c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H784.2z   "/>
                  <path d="M794.3,464.3h-1.3v-4.6c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3s-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8s0.9-0.3,1.4-0.3c0.9,0,1.5,0.3,2,0.8   c0.5,0.5,0.7,1.3,0.7,2.2L794.3,464.3z"/>
                  <path d="M801,464.3c-0.3,0.1-0.5,0.1-0.8,0.2c-0.3,0-0.6,0.1-0.8,0.1c-0.8,0-1.4-0.2-1.9-0.7s-0.6-1.1-0.6-2.1v-4.3H796v-1.1h0.9   V454h1.3v2.3h2.8v1.1h-2.8v3.6c0,0.4,0,0.7,0,1c0,0.2,0.1,0.5,0.2,0.7c0.1,0.2,0.2,0.3,0.4,0.4c0.2,0.1,0.5,0.1,0.8,0.1   c0.2,0,0.4,0,0.7-0.1c0.2-0.1,0.4-0.1,0.5-0.2h0.1L801,464.3z"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="50.5" cy="630.5" r="50.1"/>
                <g>
                  <path d="M33,626.9h-1.8l-5.1-9.5v9.5h-1.3v-10.7H27l4.6,8.7v-8.7H33V626.9z"/>
                  <path d="M42.5,622.9c0,1.3-0.3,2.3-1,3.1c-0.7,0.8-1.6,1.1-2.7,1.1c-1.1,0-2-0.4-2.7-1.1c-0.7-0.8-1-1.8-1-3.1c0-1.3,0.3-2.3,1-3.1   c0.7-0.8,1.6-1.1,2.7-1.1c1.1,0,2,0.4,2.7,1.1C42.2,620.6,42.5,621.6,42.5,622.9z M41.1,622.9c0-1-0.2-1.8-0.6-2.3   c-0.4-0.5-1-0.8-1.7-0.8c-0.7,0-1.3,0.3-1.7,0.8c-0.4,0.5-0.6,1.3-0.6,2.3c0,1,0.2,1.8,0.6,2.3c0.4,0.5,1,0.8,1.7,0.8   c0.7,0,1.3-0.3,1.7-0.8C40.9,624.7,41.1,623.9,41.1,622.9L41.1,622.9z"/>
                  <path d="M51.1,626.9h-1.3v-0.8c-0.4,0.3-0.8,0.6-1.2,0.8c-0.4,0.2-0.9,0.3-1.4,0.3c-1,0-1.7-0.4-2.3-1.1c-0.6-0.7-0.8-1.8-0.8-3.1   c0-0.7,0.1-1.3,0.3-1.8c0.2-0.5,0.5-1,0.8-1.4c0.3-0.4,0.7-0.6,1.1-0.8c0.4-0.2,0.9-0.3,1.3-0.3c0.4,0,0.8,0,1.1,0.1   c0.3,0.1,0.7,0.2,1,0.4v-3.5h1.3L51.1,626.9z M49.8,624.9v-4.6c-0.4-0.2-0.7-0.3-1-0.3c-0.3-0.1-0.6-0.1-0.9-0.1   c-0.8,0-1.3,0.3-1.8,0.8c-0.4,0.5-0.6,1.3-0.6,2.2c0,1,0.2,1.7,0.5,2.2c0.3,0.5,0.8,0.7,1.6,0.7c0.4,0,0.8-0.1,1.2-0.3   C49.1,625.4,49.4,625.2,49.8,624.9L49.8,624.9z"/>
                  <path d="M60.4,623h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7L60.4,623   z M59.1,622c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H59.1z"/>
                  <path d="M76.2,626.9h-1.5l-1-3H69l-1,3h-1.4l3.9-10.7h1.9L76.2,626.9z M73.2,622.7l-1.9-5.2l-1.9,5.2H73.2z"/>
                  <path d="M49.3,645.2h-6.7v-10.7H44v9.4h5.3V645.2z"/>
                  <path d="M57.7,645.2h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1V635c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L57.7,645.2z"/>
                </g>
                <ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 -290.451 559.7893)" fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="530.5" cy="630.5" rx="50.1" ry="50.1"/>
                <g>
                  <path d="M513.3,626.9h-1.8l-5.1-9.5v9.5h-1.3v-10.7h2.2l4.6,8.7v-8.7h1.3V626.9z"/>
                  <path d="M522.8,622.9c0,1.3-0.3,2.3-1,3.1s-1.6,1.1-2.7,1.1c-1.1,0-2-0.4-2.7-1.1c-0.7-0.8-1-1.8-1-3.1c0-1.3,0.3-2.3,1-3.1   c0.7-0.8,1.6-1.1,2.7-1.1c1.1,0,2,0.4,2.7,1.1C522.5,620.6,522.8,621.6,522.8,622.9z M521.4,622.9c0-1-0.2-1.8-0.6-2.3   c-0.4-0.5-1-0.8-1.7-0.8c-0.7,0-1.3,0.3-1.7,0.8c-0.4,0.5-0.6,1.3-0.6,2.3c0,1,0.2,1.8,0.6,2.3c0.4,0.5,1,0.8,1.7,0.8   c0.7,0,1.3-0.3,1.7-0.8C521.2,624.7,521.4,623.9,521.4,622.9L521.4,622.9z"/>
                  <path d="M531.4,626.9h-1.3v-0.8c-0.4,0.3-0.8,0.6-1.2,0.8c-0.4,0.2-0.9,0.3-1.4,0.3c-1,0-1.7-0.4-2.3-1.1c-0.6-0.7-0.8-1.8-0.8-3.1   c0-0.7,0.1-1.3,0.3-1.8c0.2-0.5,0.5-1,0.8-1.4c0.3-0.4,0.7-0.6,1.1-0.8c0.4-0.2,0.9-0.3,1.3-0.3c0.4,0,0.8,0,1.1,0.1   c0.3,0.1,0.7,0.2,1,0.4v-3.5h1.3L531.4,626.9z M530.1,624.9v-4.6c-0.4-0.2-0.7-0.3-1-0.3c-0.3-0.1-0.6-0.1-0.9-0.1   c-0.8,0-1.3,0.3-1.8,0.8c-0.4,0.5-0.6,1.3-0.6,2.2c0,1,0.2,1.7,0.5,2.2c0.3,0.5,0.8,0.7,1.6,0.7c0.4,0,0.8-0.1,1.2-0.3   C529.4,625.4,529.7,625.2,530.1,624.9L530.1,624.9z"/>
                  <path d="M540.8,623h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L540.8,623z M539.4,622c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H539.4z"/>
                  <path d="M555.8,626.9h-8.3v-1.3l6.5-8.1h-6.3v-1.3h7.9v1.3l-6.6,8.1h6.8L555.8,626.9z"/>
                  <path d="M529.6,645.2h-6.7v-10.7h1.4v9.4h5.3L529.6,645.2z"/>
                  <path d="M538,645.2h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7H531V635c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L538,645.2z"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="170.5" cy="50.5" r="50.1"/>
                <g>
                  <path d="M153.7,26.9h-3.8v9.4h-1.4v-9.4h-3.8v-1.3h9L153.7,26.9z"/>
                  <path d="M161.8,32.3c0,1.3-0.3,2.3-1,3.1s-1.6,1.1-2.7,1.1c-1.1,0-2-0.4-2.7-1.1c-0.7-0.8-1-1.8-1-3.1c0-1.3,0.3-2.3,1-3.1   c0.7-0.8,1.6-1.1,2.7-1.1c1.1,0,2,0.4,2.7,1.1C161.5,30,161.8,31,161.8,32.3z M160.4,32.3c0-1-0.2-1.8-0.6-2.3   c-0.4-0.5-1-0.8-1.7-0.8c-0.7,0-1.3,0.3-1.7,0.8c-0.4,0.5-0.6,1.3-0.6,2.3c0,1,0.2,1.8,0.6,2.3c0.4,0.5,1,0.8,1.7,0.8   c0.7,0,1.3-0.3,1.7-0.8C160.2,34.1,160.4,33.3,160.4,32.3L160.4,32.3z"/>
                  <path d="M170.8,26.9h-5.4v3h4.6v1.3h-4.6v5.1H164V25.7h6.8V26.9z"/>
                  <path d="M176.6,32.3h-4.5V31h4.5V32.3z"/>
                  <path d="M186.1,31c0,1.9-0.3,3.3-0.9,4.2c-0.6,0.9-1.5,1.3-2.8,1.3c-1.3,0-2.2-0.5-2.8-1.4c-0.6-0.9-0.9-2.3-0.9-4.2   c0-1.9,0.3-3.3,0.9-4.2c0.6-0.9,1.5-1.4,2.8-1.4c1.3,0,2.2,0.5,2.8,1.4C185.8,27.7,186.1,29.1,186.1,31z M184.2,34.2   c0.2-0.4,0.3-0.8,0.3-1.4c0.1-0.5,0.1-1.2,0.1-1.9c0-0.7,0-1.4-0.1-1.9c-0.1-0.5-0.2-1-0.3-1.4c-0.2-0.4-0.4-0.6-0.7-0.8   c-0.3-0.2-0.7-0.3-1.1-0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.3,0.2-0.5,0.5-0.7,0.8c-0.2,0.4-0.3,0.8-0.3,1.4c-0.1,0.6-0.1,1.2-0.1,1.9   c0,0.7,0,1.4,0.1,1.9c0.1,0.5,0.2,1,0.3,1.3c0.2,0.4,0.4,0.7,0.7,0.9c0.3,0.2,0.7,0.3,1.2,0.3c0.4,0,0.8-0.1,1.1-0.3   C183.8,34.9,184,34.6,184.2,34.2L184.2,34.2z"/>
                  <path d="M194.8,36.3H189v-1.1h2.2v-7.1H189v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L194.8,36.3z"/>
                  <path d="M157.8,54.6h-6.7V44h1.4v9.4h5.3V54.6z"/>
                  <path d="M165.6,54.6h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L165.6,54.6z"/>
                  <path d="M173.3,43.5l-5.1,13.3h-1.2l5.1-13.3H173.3z"/>
                  <path d="M182,54.6h-6.7V44h1.4v9.4h5.3V54.6z"/>
                  <path d="M190.4,54.6h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L190.4,54.6z"/>
                  <path d="M148,73h-1.8l-3.6-4.2h-2V73h-1.4V62.3h3c0.6,0,1.2,0,1.6,0.1c0.4,0.1,0.8,0.2,1.2,0.4c0.4,0.2,0.7,0.6,0.9,0.9   c0.2,0.4,0.3,0.8,0.3,1.4c0,0.8-0.2,1.4-0.6,1.9c-0.4,0.5-0.9,0.9-1.6,1.2L148,73z M144.7,65.3c0-0.3-0.1-0.6-0.2-0.8   c-0.1-0.2-0.3-0.4-0.5-0.6c-0.2-0.1-0.4-0.2-0.7-0.3c-0.3-0.1-0.6-0.1-1-0.1h-1.7v4h1.4c0.4,0,0.8,0,1.2-0.1   c0.3-0.1,0.6-0.2,0.9-0.4c0.2-0.2,0.4-0.4,0.5-0.7C144.6,66,144.7,65.7,144.7,65.3L144.7,65.3z"/>
                  <path d="M156,69.1h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7L156,69.1   z M154.7,68.1c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6L154.7,68.1z"/>
                  <path d="M162.3,63.1L162.3,63.1c-0.2,0-0.4-0.1-0.7-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.6,0-1,0.1-1.3,0.4c-0.3,0.3-0.4,0.7-0.4,1.4V65   h2.4v1.1h-2.4V73h-1.3v-6.9h-0.9V65h0.9v-0.3c0-1,0.2-1.7,0.7-2.2c0.5-0.5,1.2-0.8,2-0.8c0.3,0,0.6,0,0.8,0c0.2,0,0.5,0.1,0.7,0.1   L162.3,63.1z"/>
                  <path d="M164.5,73h-1.3V61.8h1.3V73z"/>
                  <path d="M173.9,69.1H168c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L173.9,69.1z M172.6,68.1c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6   L172.6,68.1z"/>
                  <path d="M181.9,72.5c-0.4,0.2-0.9,0.4-1.3,0.5c-0.4,0.1-0.8,0.2-1.3,0.2c-0.6,0-1.1-0.1-1.6-0.3c-0.5-0.2-0.9-0.4-1.2-0.8   c-0.3-0.3-0.6-0.8-0.8-1.3c-0.2-0.5-0.3-1.1-0.3-1.8c0-1.3,0.4-2.3,1.1-3.1c0.7-0.7,1.7-1.1,2.9-1.1c0.5,0,0.9,0.1,1.3,0.2   c0.4,0.1,0.8,0.3,1.2,0.5V67h-0.1c-0.4-0.3-0.8-0.6-1.3-0.7c-0.4-0.2-0.9-0.3-1.3-0.3c-0.8,0-1.4,0.3-1.8,0.8   c-0.4,0.5-0.7,1.3-0.7,2.3c0,1,0.2,1.7,0.6,2.2c0.4,0.5,1,0.8,1.8,0.8c0.3,0,0.5,0,0.8-0.1c0.3-0.1,0.5-0.2,0.8-0.3   c0.2-0.1,0.4-0.2,0.6-0.3c0.2-0.1,0.3-0.2,0.4-0.3h0.1L181.9,72.5z"/>
                  <path d="M187.8,72.9c-0.3,0.1-0.5,0.1-0.8,0.2c-0.3,0-0.6,0.1-0.8,0.1c-0.8,0-1.4-0.2-1.9-0.7c-0.4-0.4-0.6-1.1-0.6-2.1v-4.3h-0.9   V65h0.9v-2.3h1.3V65h2.8v1.1H185v3.6c0,0.4,0,0.7,0,1c0,0.2,0.1,0.5,0.2,0.7c0.1,0.2,0.2,0.3,0.4,0.4c0.2,0.1,0.5,0.1,0.8,0.1   c0.2,0,0.4,0,0.7-0.1c0.2-0.1,0.4-0.1,0.5-0.2h0.1L187.8,72.9z"/>
                  <path d="M196.2,69c0,1.3-0.3,2.3-1,3.1s-1.6,1.1-2.7,1.1c-1.1,0-2-0.4-2.7-1.1c-0.7-0.8-1-1.8-1-3.1s0.3-2.3,1-3.1   c0.7-0.8,1.6-1.1,2.7-1.1c1.1,0,2,0.4,2.7,1.1C195.9,66.7,196.2,67.7,196.2,69z M194.8,69c0-1-0.2-1.8-0.6-2.3   c-0.4-0.5-1-0.8-1.7-0.8c-0.7,0-1.3,0.3-1.7,0.8c-0.4,0.5-0.6,1.3-0.6,2.3c0,1,0.2,1.8,0.6,2.3c0.4,0.5,1,0.8,1.7,0.8   c0.7,0,1.3-0.3,1.7-0.8C194.6,70.8,194.8,70,194.8,69L194.8,69z"/>
                  <path d="M203.3,66.4L203.3,66.4c-0.3,0-0.5-0.1-0.7-0.1c-0.2,0-0.4,0-0.7,0c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.1,0.7V73   h-1.3v-8h1.3v1.2c0.5-0.4,1-0.7,1.4-0.9c0.4-0.2,0.8-0.3,1.3-0.3c0.2,0,0.4,0,0.5,0c0.1,0,0.3,0,0.5,0.1L203.3,66.4z"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="650.5" cy="50.5" r="50.1"/>
                <g>
                  <path d="M633.7,26.9h-3.8v9.4h-1.4v-9.4h-3.8v-1.3h9V26.9z"/>
                  <path d="M641.8,32.3c0,1.3-0.3,2.3-1,3.1s-1.6,1.1-2.7,1.1c-1.1,0-2-0.4-2.7-1.1c-0.7-0.8-1-1.8-1-3.1c0-1.3,0.3-2.3,1-3.1   c0.7-0.8,1.6-1.1,2.7-1.1c1.1,0,2,0.4,2.7,1.1C641.5,30,641.8,31,641.8,32.3z M640.4,32.3c0-1-0.2-1.8-0.6-2.3   c-0.4-0.5-1-0.8-1.7-0.8c-0.7,0-1.3,0.3-1.7,0.8c-0.4,0.5-0.6,1.3-0.6,2.3c0,1,0.2,1.8,0.6,2.3c0.4,0.5,1,0.8,1.7,0.8   c0.7,0,1.3-0.3,1.7-0.8C640.2,34.1,640.4,33.3,640.4,32.3L640.4,32.3z"/>
                  <path d="M650.8,26.9h-5.4v3h4.6v1.3h-4.6v5.1H644V25.7h6.8V26.9z"/>
                  <path d="M656.6,32.3h-4.5V31h4.5V32.3z"/>
                  <path d="M666,31c0,1.9-0.3,3.3-0.9,4.2c-0.6,0.9-1.5,1.3-2.8,1.3c-1.3,0-2.2-0.5-2.8-1.4c-0.6-0.9-0.9-2.3-0.9-4.2   c0-1.9,0.3-3.3,0.9-4.2c0.6-0.9,1.5-1.4,2.8-1.4c1.3,0,2.2,0.5,2.8,1.4C665.8,27.7,666,29.1,666,31z M664.2,34.2   c0.2-0.4,0.3-0.8,0.3-1.4c0.1-0.5,0.1-1.2,0.1-1.9c0-0.7,0-1.4-0.1-1.9c-0.1-0.5-0.2-1-0.3-1.4c-0.2-0.4-0.4-0.6-0.7-0.8   c-0.3-0.2-0.7-0.3-1.1-0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.3,0.2-0.5,0.5-0.7,0.8c-0.2,0.4-0.3,0.8-0.3,1.4c-0.1,0.6-0.1,1.2-0.1,1.9   c0,0.7,0,1.4,0.1,1.9c0.1,0.5,0.2,1,0.3,1.3c0.2,0.4,0.4,0.7,0.7,0.9c0.3,0.2,0.7,0.3,1.2,0.3c0.4,0,0.8-0.1,1.1-0.3   S664,34.6,664.2,34.2L664.2,34.2z"/>
                  <path d="M675.4,36.3h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L675.4,36.3z"/>
                  <path d="M637.8,54.7h-6.7V44h1.4v9.4h5.3L637.8,54.7z"/>
                  <path d="M645.6,54.7h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2V54.7z"/>
                  <path d="M653.3,43.5l-5.1,13.3h-1.2l5.1-13.3H653.3z"/>
                  <path d="M662,54.7h-6.7V44h1.4v9.4h5.3L662,54.7z"/>
                  <path d="M670.4,54.7h-7.2v-1.5c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L670.4,54.7z"/>
                  <path d="M628,73h-1.8l-3.6-4.2h-2V73h-1.4V62.3h3c0.6,0,1.2,0,1.6,0.1c0.4,0.1,0.8,0.2,1.2,0.4c0.4,0.2,0.7,0.6,0.9,0.9   c0.2,0.4,0.3,0.8,0.3,1.4c0,0.8-0.2,1.4-0.6,1.9c-0.4,0.5-0.9,0.9-1.6,1.2L628,73z M624.7,65.3c0-0.3-0.1-0.6-0.2-0.8   c-0.1-0.2-0.3-0.4-0.5-0.6c-0.2-0.1-0.4-0.2-0.7-0.3c-0.3-0.1-0.6-0.1-1-0.1h-1.7v4h1.4c0.4,0,0.8,0,1.2-0.1   c0.3-0.1,0.6-0.2,0.9-0.4c0.2-0.2,0.4-0.4,0.5-0.7C624.6,66.1,624.7,65.7,624.7,65.3L624.7,65.3z"/>
                  <path d="M636,69.1h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7L636,69.1   z M634.7,68.1c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6L634.7,68.1z"/>
                  <path d="M642.3,63.1L642.3,63.1c-0.2,0-0.4-0.1-0.7-0.1c-0.2,0-0.4-0.1-0.6-0.1c-0.6,0-1,0.1-1.3,0.4c-0.3,0.3-0.4,0.7-0.4,1.4V65   h2.4v1.1h-2.4V73h-1.3v-6.9h-0.9V65h0.9v-0.3c0-1,0.2-1.7,0.7-2.2c0.5-0.5,1.2-0.8,2-0.8c0.3,0,0.6,0,0.8,0c0.2,0,0.5,0.1,0.7,0.1   V63.1z"/>
                  <path d="M644.5,73h-1.3V61.8h1.3V73z"/>
                  <path d="M653.9,69.1H648c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5s-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L653.9,69.1z M652.6,68.1c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6   L652.6,68.1z"/>
                  <path d="M661.9,72.5c-0.4,0.2-0.9,0.4-1.3,0.5c-0.4,0.1-0.8,0.2-1.3,0.2c-0.6,0-1.1-0.1-1.6-0.3c-0.5-0.2-0.9-0.4-1.2-0.8   c-0.3-0.3-0.6-0.8-0.8-1.3c-0.2-0.5-0.3-1.1-0.3-1.8c0-1.3,0.4-2.3,1.1-3.1c0.7-0.7,1.7-1.1,2.9-1.1c0.5,0,0.9,0.1,1.3,0.2   c0.4,0.1,0.8,0.3,1.2,0.5V67h-0.1c-0.4-0.3-0.8-0.6-1.3-0.7c-0.4-0.2-0.9-0.3-1.3-0.3c-0.8,0-1.4,0.3-1.8,0.8   c-0.4,0.5-0.7,1.3-0.7,2.3c0,1,0.2,1.7,0.6,2.2c0.4,0.5,1,0.8,1.8,0.8c0.3,0,0.5,0,0.8-0.1c0.3-0.1,0.5-0.2,0.8-0.3   c0.2-0.1,0.4-0.2,0.6-0.3c0.2-0.1,0.3-0.2,0.4-0.3h0.1L661.9,72.5z"/>
                  <path d="M667.8,72.9c-0.3,0.1-0.5,0.1-0.8,0.2c-0.3,0-0.6,0.1-0.8,0.1c-0.8,0-1.4-0.2-1.9-0.7s-0.6-1.1-0.6-2.1v-4.3h-0.9V65h0.9   v-2.3h1.3V65h2.8v1.1H665v3.6c0,0.4,0,0.7,0,1c0,0.2,0.1,0.5,0.2,0.7c0.1,0.2,0.2,0.3,0.4,0.4c0.2,0.1,0.5,0.1,0.8,0.1   c0.2,0,0.4,0,0.7-0.1c0.2-0.1,0.4-0.1,0.5-0.2h0.1L667.8,72.9z"/>
                  <path d="M676.2,69c0,1.3-0.3,2.3-1,3.1s-1.6,1.1-2.7,1.1c-1.1,0-2-0.4-2.7-1.1c-0.7-0.8-1-1.8-1-3.1s0.3-2.3,1-3.1   c0.7-0.8,1.6-1.1,2.7-1.1c1.1,0,2,0.4,2.7,1.1C675.9,66.7,676.2,67.7,676.2,69z M674.8,69c0-1-0.2-1.8-0.6-2.3   c-0.4-0.5-1-0.8-1.7-0.8c-0.7,0-1.3,0.3-1.7,0.8c-0.4,0.5-0.6,1.3-0.6,2.3c0,1,0.2,1.8,0.6,2.3c0.4,0.5,1,0.8,1.7,0.8   c0.7,0,1.3-0.3,1.7-0.8C674.6,70.8,674.8,70,674.8,69L674.8,69z"/>
                  <path d="M683.3,66.5L683.3,66.5c-0.3,0-0.5-0.1-0.7-0.1c-0.2,0-0.4,0-0.7,0c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.1,0.7V73   h-1.3v-8h1.3v1.2c0.5-0.4,1-0.7,1.4-0.9c0.4-0.2,0.8-0.3,1.3-0.3c0.2,0,0.4,0,0.5,0c0.1,0,0.3,0,0.5,0.1L683.3,66.5z"/>
                </g>
                <g>
                  <path d="M23.4,233.5c0,0.4-0.1,0.8-0.3,1.2c-0.2,0.4-0.5,0.7-0.8,1c-0.4,0.3-0.8,0.5-1.3,0.7c-0.5,0.2-1.1,0.3-1.8,0.3   c-0.8,0-1.5-0.1-2.1-0.2c-0.6-0.1-1.2-0.4-1.9-0.6v-1.8h0.1c0.5,0.4,1.2,0.8,1.9,1c0.7,0.2,1.4,0.4,2,0.4c0.9,0,1.6-0.2,2-0.5   c0.5-0.3,0.7-0.8,0.7-1.3c0-0.5-0.1-0.8-0.4-1c-0.2-0.2-0.6-0.4-1.1-0.5c-0.4-0.1-0.7-0.2-1.2-0.2c-0.4-0.1-0.9-0.1-1.3-0.2   c-0.9-0.2-1.6-0.5-2.1-1c-0.5-0.5-0.7-1.1-0.7-1.9c0-0.9,0.4-1.6,1.1-2.2c0.8-0.6,1.7-0.9,2.9-0.9c0.7,0,1.4,0.1,2.1,0.2   c0.6,0.1,1.2,0.3,1.7,0.5v1.7h-0.1c-0.4-0.3-0.9-0.6-1.6-0.9c-0.7-0.2-1.3-0.3-2-0.3c-0.8,0-1.4,0.2-1.8,0.5   c-0.5,0.3-0.7,0.7-0.7,1.2c0,0.4,0.1,0.8,0.3,1c0.2,0.3,0.6,0.4,1.2,0.6c0.3,0.1,0.7,0.1,1.3,0.2c0.6,0.1,1,0.2,1.4,0.3   c0.8,0.2,1.4,0.5,1.8,1C23.2,232.1,23.4,232.7,23.4,233.5L23.4,233.5z"/>
                  <path d="M32.6,232.4c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.5-0.4,1-0.8,1.4c-0.3,0.4-0.7,0.6-1.1,0.8c-0.4,0.2-0.9,0.3-1.4,0.3   c-0.4,0-0.8,0-1.1-0.1c-0.3-0.1-0.7-0.2-1-0.4v3.4h-1.3v-10.9h1.3v0.8c0.4-0.3,0.8-0.6,1.2-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c1,0,1.7,0.4,2.2,1.1C32.3,230.1,32.6,231.1,32.6,232.4L32.6,232.4z M31.2,232.4c0-1-0.2-1.7-0.5-2.2c-0.3-0.5-0.8-0.7-1.5-0.7   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.1,0.7v4.5c0.4,0.2,0.7,0.3,1,0.4c0.3,0.1,0.6,0.1,0.9,0.1c0.7,0,1.3-0.3,1.8-0.8   C31,234.2,31.2,233.4,31.2,232.4L31.2,232.4z"/>
                  <path d="M36.1,227.2h-1.5v-1.4h1.5V227.2z M36,236.5h-1.3v-8H36V236.5z"/>
                  <path d="M45.4,236.5h-1.3V232c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c0.9,0,1.5,0.3,2,0.8c0.5,0.5,0.7,1.3,0.7,2.2L45.4,236.5z"/>
                  <path d="M54.7,232.6h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5s-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L54.7,232.6z M53.4,231.6c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H53.4z"/>
                  <path d="M61,232.5h-4.5v-1.3H61V232.5z"/>
                  <path d="M69.8,236.5h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L69.8,236.5z"/>
                  <path d="M77,232.5h-4.5v-1.3H77V232.5z"/>
                  <path d="M85.9,236.5h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L85.9,236.5z"/>
                  <path d="M50.2,254.8h-6.7v-10.7h1.4v9.4h5.3V254.8z"/>
                  <path d="M58,254.8h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6H58L58,254.8z"/>
                  <path d="M46.5,273.2h-1.8l-5.1-9.5v9.5h-1.3v-10.7h2.2l4.6,8.7v-8.7h1.3V273.2z"/>
                  <path d="M54.1,262L49,275.4h-1.2l5.1-13.3H54.1z"/>
                  <path d="M64.5,273.2h-1.5l-1-3h-4.6l-1,3h-1.4l3.9-10.7h1.9L64.5,273.2z M61.5,269l-1.9-5.2l-1.9,5.2H61.5z"/>
                </g>
                <circle fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="300.5" cy="250.5" r="50.1"/>
                <g>
                  <path d="M273.1,233.5c0,0.4-0.1,0.8-0.3,1.2c-0.2,0.4-0.5,0.7-0.8,1c-0.4,0.3-0.8,0.5-1.3,0.7c-0.5,0.2-1.1,0.3-1.8,0.3   c-0.8,0-1.5-0.1-2.1-0.2c-0.6-0.1-1.2-0.4-1.9-0.6v-1.8h0.1c0.5,0.4,1.2,0.8,1.9,1c0.7,0.2,1.4,0.4,2,0.4c0.9,0,1.6-0.2,2-0.5   c0.5-0.3,0.7-0.8,0.7-1.3c0-0.5-0.1-0.8-0.4-1c-0.2-0.2-0.6-0.4-1.1-0.5c-0.4-0.1-0.7-0.2-1.2-0.2c-0.4-0.1-0.9-0.1-1.3-0.2   c-0.9-0.2-1.6-0.5-2.1-1c-0.5-0.5-0.7-1.1-0.7-1.9c0-0.9,0.4-1.6,1.1-2.2c0.8-0.6,1.7-0.9,2.9-0.9c0.7,0,1.4,0.1,2.1,0.2   c0.6,0.1,1.2,0.3,1.7,0.5v1.7h-0.1c-0.4-0.3-0.9-0.6-1.6-0.9c-0.7-0.2-1.3-0.3-2-0.3c-0.8,0-1.4,0.2-1.8,0.5   c-0.5,0.3-0.7,0.7-0.7,1.2c0,0.4,0.1,0.8,0.3,1c0.2,0.3,0.6,0.4,1.2,0.6c0.3,0.1,0.7,0.1,1.3,0.2c0.6,0.1,1,0.2,1.4,0.3   c0.8,0.2,1.4,0.5,1.8,1C272.9,232.1,273.1,232.7,273.1,233.5L273.1,233.5z"/>
                  <path d="M282.3,232.4c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.5-0.4,1-0.8,1.4c-0.3,0.4-0.7,0.6-1.1,0.8c-0.4,0.2-0.9,0.3-1.4,0.3   c-0.4,0-0.8,0-1.1-0.1c-0.3-0.1-0.7-0.2-1-0.4v3.4h-1.3v-10.9h1.3v0.8c0.4-0.3,0.8-0.6,1.2-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c1,0,1.7,0.4,2.2,1.1C282,230.1,282.3,231.1,282.3,232.4L282.3,232.4z M280.9,232.5c0-1-0.2-1.7-0.5-2.2c-0.3-0.5-0.8-0.7-1.5-0.7   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.1,0.7v4.5c0.4,0.2,0.7,0.3,1,0.4c0.3,0.1,0.6,0.1,0.9,0.1c0.7,0,1.3-0.3,1.8-0.8   C280.7,234.2,280.9,233.4,280.9,232.5L280.9,232.5z"/>
                  <path d="M285.8,227.2h-1.5v-1.4h1.5V227.2z M285.7,236.5h-1.3v-8h1.3V236.5z"/>
                  <path d="M295.1,236.5h-1.3V232c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c0.9,0,1.5,0.3,2,0.8c0.5,0.5,0.7,1.3,0.7,2.2L295.1,236.5z"/>
                  <path d="M304.4,232.7h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5s-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7V232.7z    M303.1,231.6c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H303.1z"/>
                  <path d="M310.7,232.5h-4.5v-1.3h4.5V232.5z"/>
                  <path d="M319.5,236.5h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L319.5,236.5z"/>
                  <path d="M326.7,232.5h-4.5v-1.3h4.5V232.5z"/>
                  <path d="M336.2,236.5h-7.2V235c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7V236.5z"/>
                  <path d="M299.9,254.9h-6.7v-10.7h1.4v9.4h5.3V254.9z"/>
                  <path d="M307.7,254.9h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L307.7,254.9z"/>
                  <path d="M296.2,273.2h-1.8l-5.1-9.5v9.5h-1.3v-10.7h2.2l4.6,8.7v-8.7h1.3V273.2z"/>
                  <path d="M303.8,262l-5.1,13.3h-1.2l5.1-13.3H303.8z"/>
                  <path d="M314.1,273.2h-1.5l-1-3H307l-1,3h-1.4l3.9-10.7h1.9L314.1,273.2z M311.2,269l-1.9-5.2l-1.9,5.2H311.2z"/>
                </g>
                <ellipse transform="matrix(0.1602 -0.9871 0.9871 0.1602 198.2579 734.0242)" fill="#FFFFFF" stroke="#000000" stroke-width="0.8569" stroke-linejoin="round" cx="530.5" cy="250.5" rx="50.1" ry="50.1"/>
                <g transform="translate(2e-5)">
                  <path d="M503.4,233.5c0,0.4-0.1,0.8-0.3,1.2c-0.2,0.4-0.5,0.7-0.8,1c-0.4,0.3-0.8,0.5-1.3,0.7c-0.5,0.2-1.1,0.3-1.8,0.3   c-0.8,0-1.5-0.1-2.1-0.2c-0.6-0.1-1.2-0.4-1.9-0.6v-1.8h0.1c0.5,0.4,1.2,0.8,1.9,1c0.7,0.2,1.4,0.4,2,0.4c0.9,0,1.6-0.2,2-0.5   c0.5-0.3,0.7-0.8,0.7-1.3c0-0.5-0.1-0.8-0.4-1c-0.2-0.2-0.6-0.4-1.1-0.5c-0.4-0.1-0.7-0.2-1.2-0.2c-0.4-0.1-0.9-0.1-1.3-0.2   c-0.9-0.2-1.6-0.5-2.1-1c-0.5-0.5-0.7-1.1-0.7-1.9c0-0.9,0.4-1.6,1.1-2.2c0.8-0.6,1.7-0.9,2.9-0.9c0.7,0,1.4,0.1,2.1,0.2   c0.6,0.1,1.2,0.3,1.7,0.5v1.7h-0.1c-0.4-0.3-0.9-0.6-1.6-0.9c-0.7-0.2-1.3-0.3-2-0.3c-0.8,0-1.4,0.2-1.8,0.5   c-0.5,0.3-0.7,0.7-0.7,1.2c0,0.4,0.1,0.8,0.3,1c0.2,0.3,0.6,0.4,1.2,0.6c0.3,0.1,0.7,0.1,1.3,0.2c0.6,0.1,1,0.2,1.4,0.3   c0.8,0.2,1.4,0.5,1.8,1C503.2,232.1,503.4,232.7,503.4,233.5L503.4,233.5z"/>
                  <path d="M512.6,232.4c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.5-0.4,1-0.8,1.4c-0.3,0.4-0.7,0.6-1.1,0.8c-0.4,0.2-0.9,0.3-1.4,0.3   c-0.4,0-0.8,0-1.1-0.1c-0.3-0.1-0.7-0.2-1-0.4v3.4h-1.3v-10.9h1.3v0.8c0.4-0.3,0.8-0.6,1.2-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c1,0,1.7,0.4,2.2,1.1C512.3,230.1,512.6,231.1,512.6,232.4L512.6,232.4z M511.2,232.5c0-1-0.2-1.7-0.5-2.2   c-0.3-0.5-0.8-0.7-1.5-0.7c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.1,0.7v4.5c0.4,0.2,0.7,0.3,1,0.4c0.3,0.1,0.6,0.1,0.9,0.1   c0.7,0,1.3-0.3,1.8-0.8C511,234.2,511.2,233.4,511.2,232.5L511.2,232.5z"/>
                  <path d="M516.1,227.2h-1.5v-1.4h1.5V227.2z M516,236.5h-1.3v-8h1.3V236.5z"/>
                  <path d="M525.4,236.5h-1.3V232c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3s-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8c0.4-0.2,0.9-0.3,1.4-0.3c0.9,0,1.5,0.3,2,0.8   c0.5,0.5,0.7,1.3,0.7,2.2V236.5z"/>
                  <path d="M534.7,232.7h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5c-0.5,0.1-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L534.7,232.7z M533.4,231.6c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H533.4z   "/>
                  <path d="M541,232.5h-4.5v-1.3h4.5V232.5z"/>
                  <path d="M550.5,236.5h-7.2V235c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L550.5,236.5z"/>
                  <path d="M557,232.5h-4.5v-1.3h4.5V232.5z"/>
                  <path d="M565.9,236.5h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L565.9,236.5z"/>
                  <path d="M530.2,254.9h-6.7v-10.7h1.4v9.4h5.3L530.2,254.9z"/>
                  <path d="M538,254.9h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L538,254.9z"/>
                  <path d="M526.5,273.2h-1.8l-5.1-9.5v9.5h-1.3v-10.7h2.2l4.6,8.7v-8.7h1.3V273.2z"/>
                  <path d="M534.1,262l-5.1,13.3h-1.2l5.1-13.3H534.1z"/>
                  <path d="M544.5,273.2h-1.5l-1-3h-4.6l-1,3h-1.4l3.9-10.7h1.9L544.5,273.2z M541.5,269l-1.9-5.2l-1.9,5.2H541.5z"/>
                </g>
                <g>
                  <path d="M753.1,233.5c0,0.4-0.1,0.8-0.3,1.2c-0.2,0.4-0.5,0.7-0.8,1c-0.4,0.3-0.8,0.5-1.3,0.7c-0.5,0.2-1.1,0.3-1.8,0.3   c-0.8,0-1.5-0.1-2.1-0.2c-0.6-0.1-1.2-0.4-1.9-0.6v-1.8h0.1c0.5,0.4,1.2,0.8,1.9,1c0.7,0.2,1.4,0.4,2,0.4c0.9,0,1.6-0.2,2-0.5   c0.5-0.3,0.7-0.8,0.7-1.3c0-0.5-0.1-0.8-0.4-1c-0.2-0.2-0.6-0.4-1.1-0.5c-0.4-0.1-0.7-0.2-1.2-0.2c-0.4-0.1-0.9-0.1-1.3-0.2   c-0.9-0.2-1.6-0.5-2.1-1c-0.5-0.5-0.7-1.1-0.7-1.9c0-0.9,0.4-1.6,1.1-2.2c0.8-0.6,1.7-0.9,2.9-0.9c0.7,0,1.4,0.1,2.1,0.2   c0.6,0.1,1.2,0.3,1.7,0.5v1.7h-0.1c-0.4-0.3-0.9-0.6-1.6-0.9c-0.7-0.2-1.3-0.3-2-0.3c-0.8,0-1.4,0.2-1.8,0.5   c-0.5,0.3-0.7,0.7-0.7,1.2c0,0.4,0.1,0.8,0.3,1c0.2,0.3,0.6,0.4,1.2,0.6c0.3,0.1,0.7,0.1,1.3,0.2c0.6,0.1,1,0.2,1.4,0.3   c0.8,0.2,1.4,0.5,1.8,1C752.9,232.1,753.1,232.7,753.1,233.5L753.1,233.5z"/>
                  <path d="M762.3,232.4c0,0.6-0.1,1.2-0.3,1.8c-0.2,0.5-0.4,1-0.8,1.4c-0.3,0.4-0.7,0.6-1.1,0.8c-0.4,0.2-0.9,0.3-1.4,0.3   c-0.4,0-0.8,0-1.1-0.1c-0.3-0.1-0.7-0.2-1-0.4v3.4h-1.3v-10.9h1.3v0.8c0.4-0.3,0.8-0.6,1.2-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c1,0,1.7,0.4,2.2,1.1C762,230.1,762.3,231.1,762.3,232.4L762.3,232.4z M760.9,232.5c0-1-0.2-1.7-0.5-2.2c-0.3-0.5-0.8-0.7-1.5-0.7   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.1,0.7v4.5c0.4,0.2,0.7,0.3,1,0.4c0.3,0.1,0.6,0.1,0.9,0.1c0.7,0,1.3-0.3,1.8-0.8   C760.7,234.2,760.9,233.4,760.9,232.5L760.9,232.5z"/>
                  <path d="M765.8,227.2h-1.5v-1.4h1.5V227.2z M765.7,236.5h-1.3v-8h1.3V236.5z"/>
                  <path d="M775.1,236.5h-1.3V232c0-0.4,0-0.7-0.1-1c0-0.3-0.1-0.6-0.2-0.8c-0.1-0.2-0.3-0.3-0.5-0.4c-0.2-0.1-0.5-0.2-0.9-0.2   c-0.4,0-0.8,0.1-1.2,0.3c-0.4,0.2-0.8,0.4-1.2,0.7v6h-1.3v-8h1.3v0.9c0.4-0.3,0.9-0.6,1.3-0.8c0.4-0.2,0.9-0.3,1.4-0.3   c0.9,0,1.5,0.3,2,0.8c0.5,0.5,0.7,1.3,0.7,2.2L775.1,236.5z"/>
                  <path d="M784.4,232.7h-5.9c0,0.5,0.1,0.9,0.2,1.3c0.1,0.4,0.4,0.7,0.6,0.9c0.2,0.2,0.5,0.4,0.9,0.5c0.3,0.1,0.7,0.2,1.1,0.2   c0.5,0,1.1-0.1,1.6-0.3c0.6-0.2,0.9-0.4,1.2-0.6h0.1v1.5c-0.5,0.2-0.9,0.4-1.4,0.5s-1,0.2-1.5,0.2c-1.3,0-2.4-0.4-3.1-1.1   c-0.7-0.7-1.1-1.7-1.1-3.1c0-1.3,0.4-2.3,1.1-3.1c0.7-0.8,1.7-1.2,2.8-1.2c1.1,0,1.9,0.3,2.5,0.9c0.6,0.6,0.9,1.5,0.9,2.7   L784.4,232.7z M783.1,231.6c0-0.7-0.2-1.3-0.5-1.6c-0.3-0.4-0.9-0.6-1.6-0.6c-0.7,0-1.3,0.2-1.7,0.6c-0.4,0.4-0.7,1-0.7,1.6H783.1z   "/>
                  <path d="M790.7,232.5h-4.5v-1.3h4.5V232.5z"/>
                  <path d="M800.2,236.5h-7.2V235c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2s-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7V236.5z"/>
                  <path d="M806.7,232.5h-4.5v-1.3h4.5V232.5z"/>
                  <path d="M816.2,236.5h-7.2V235c0.5-0.4,1-0.9,1.5-1.3c0.5-0.4,1-0.9,1.4-1.3c0.9-0.9,1.5-1.6,1.9-2.1c0.3-0.5,0.5-1.1,0.5-1.7   c0-0.6-0.2-1-0.6-1.3c-0.4-0.3-0.9-0.5-1.5-0.5c-0.4,0-0.9,0.1-1.4,0.2c-0.5,0.2-1,0.4-1.5,0.7h-0.1v-1.5c0.3-0.2,0.8-0.3,1.4-0.5   c0.6-0.1,1.1-0.2,1.6-0.2c1.1,0,2,0.3,2.6,0.8c0.6,0.5,0.9,1.2,0.9,2.1c0,0.4-0.1,0.8-0.2,1.1c-0.1,0.3-0.3,0.7-0.5,1   c-0.2,0.3-0.4,0.6-0.7,0.9c-0.2,0.3-0.6,0.6-0.9,1c-0.5,0.5-1,1-1.6,1.5c-0.5,0.5-1.1,0.9-1.5,1.3h5.7L816.2,236.5z"/>
                  <path d="M779.9,254.9h-6.7v-10.7h1.4v9.4h5.3L779.9,254.9z"/>
                  <path d="M787.7,254.9h-5.8v-1.1h2.2v-7.1h-2.2v-1c0.3,0,0.6,0,1-0.1c0.3-0.1,0.6-0.1,0.8-0.2c0.2-0.1,0.4-0.3,0.5-0.5   c0.1-0.2,0.2-0.4,0.2-0.7h1.1v9.6h2.2L787.7,254.9z"/>
                  <path d="M776.2,273.2h-1.8l-5.1-9.5v9.5h-1.3v-10.7h2.2l4.6,8.7v-8.7h1.3V273.2z"/>
                  <path d="M783.8,262l-5.1,13.3h-1.2l5.1-13.3H783.8z"/>
                  <path d="M794.2,273.2h-1.5l-1-3H787l-1,3h-1.4l3.9-10.7h1.9L794.2,273.2z M791.2,269l-1.9-5.2l-1.9,5.2H791.2z"/>
                </g>
              </svg>
            </artwork>
            <artwork align="left" name="" type="ascii-art" originalSrc="art/rift-auto-fr-op-example-topology.ascii-art">                      +-----------------+   +-----------------+
                      | ToF-01          |   | ToF-02          |
                      | L1 / L2         |   | L1 / L2         |  ]----------------------+
                      | Flood Reflector |   | Flood Reflector |                         |
                      +-+--+------+--+--+   +-+--+------+--+--+                         |
                        |  |      |  |        |  |      |  |                            |
  +---------------------+  |      |  |        |  |      |  |                            |
  |                        |      |  |        |  |      |  +---------------------+      |
  |            +-----------)------)--)--------+  |      |                        |      |
  |            |           |      |  |   +-------+      |                        |      |
  |            |           |      |  |   |              |                        |      |
  |            |           |      |  +---)--------------)-----------+            |      |
  |            |           |      |      |              |           |            |      |
  |            |        +--+      +------)----+         +--+        |            |      |
  |            |        |                |    |            |        |            |      |
  |            |        |            +---+    |            |        |            |      | Level 2 Mesh of
  |            |        |            |        |            |        |            |      | Flood Reflection
+-+------------+-+    +-+------------+-+    +-+------------+-+    +-+------------+-+    | Adjacencies
| Spine-1-1      |    | Spine-1-2      |    | Spine-2-1      |    | Spine-2-2      |    | Between ToFs/Leafs
| L1             |    | L1             |    | L1             |    | L1             |    |
| N/A            |    | N/A            |    | N/A            |    | N/A            |    |
+--+----------+--+    +--+----------+--+    +--+----------+--+    +--+----------+--+    |
   |          |          |          |          |          |          |          |       |
   |          +----------)---+      |          |          +----------)---+      |       |
   |                     |   |      |          |                     |   |      |       |
   |          +----------+   |      |          |          +----------+   |      |       |
   |          |              |      |          |          |              |      |       |
+--+----------+--+    +------+------+--+    +--+----------+--+    +------+------+--+    |
| Leaf-1-1       |    | Leaf-1-2       |    | Leaf-2-1       |    | Leaf-2-2       |    |
| L1 / L2        |    | L1 / L2        |    | L1 / L2        |    | L1 / L2        |  ]-+
| FR Client      |    | FR Client      |    | FR Client      |    | FR Client      |
+--+-------------+    +--------------+-+    +--+-------------+    +----------------+
   |                                           |
   |                                           |
   |                                           |
   |                                           |
+--+-------------+                          +--+-----------+-+
| Node A         |                          | Node Z         |
| L2             |                          | L2             |
+----------------+                          +----------------+</artwork>
          </artset>
        </figure>
        <t><xref target="auto-fr-example-topology"/> illustrates a typical 5-stage Clos IP fabric.
          Each node is named and labelled in such a way that conveys:</t>
        <ol>
        <li>The node's generic placement within the context of the RIFT underlay</li>
          <li>The node's level(s) within the IS-IS area.</li>
          <li>The node's role within the IS-IS Flood Reflection topology.</li>
        </ol>
        <t><xref target="auto-fr-role-associations"/> should help further align these concepts.</t>
        <table anchor="auto-fr-role-associations" align="center">
          <name>Role Associations</name>
          <thead>
            <tr>
              <th align="left">RIFT Placement</th>
              <th align="left">IS-IS Level</th>
              <th align="left">IS-IS FR Role</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ToF Nodes</td>
              <td align="left">L1/L2</td>
              <td align="left">Flood Reflector</td>
            </tr>
            <tr>
              <td align="left">Spine Nodes</td>
              <td align="left">L1</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Leaf Nodes</td>
              <td align="left">L1/L2</td>
              <td align="left">Flood Reflector Client</td>
            </tr>
          </tbody>
        </table>
        <t>Connections between various nodes can be understood in two different ways:</t>
        <ol>
        <li>Lines between ToF and leaf nodes are Level 2 IS-IS Flood Reflection adjacencies.</li>
          <li>Lines between spine and leaf are part of the physically connected underlay.</li>
          <li>Lines between ToF and spine are part of the physically connected underlay.</li>
        </ol>
        <t>It is important to remember that Auto-FR is not altering the way in which IS-IS 
        Flood Reflection operates in any way, it simply takes existing deployment scenarios 
        and simplifies the provisioning process.</t>
      </section>
      <section>
        <name>Auto-FR Analytics</name>
        <t>Leaf nodes MAY optionally advertise analytics information about the Auto-FR fabric to ToF nodes using <xref target="RIFT-KV">RIFT Key-Value TIEs</xref>. 
        This may be helpful in that validation and troubleshooting activities can be performed on the ToF nodes rather than 
        manually verifying the state separately on multiple leaf nodes.</t>
        <section>
          <name>Auto-FR Analytics (Global) Key/Value Pair</name>
          <t>This Key/Value pair describes node level information within the context of the Flood Reflection topology. The RIFT 
          System ID of the advertising leaf node MUST be used to differentiate the node among other nodes in the fabric.
          </t>
          <t>The Auto-FR Analytics (Global) Key/Value pair MUST be advertised with 
          the 3rd and 4th bytes of the Key Identifier consisting of all 0s.</t>
          <figure>
            <name>Auto-FR Global Key/Value Pair</name>
            <artset>
              <artwork align="center" name="" type="ascii-art" originalSrc="art/rift-auto-fr-global-kv.ascii-art"> 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Well-Known  |           Auto-FR Analytics (Global)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     (Auto-FR Role,                                            |
|      Flood Reflection Cluster ID,                             |
|      Established IS-IS FR L2 Adjacencies,                     |
|      Total IS-IS FR L2 Adjacencies,                           |
|      Established IS-IS FR L1 Shortcut Adjacencies,            |
|      Total IS-IS FR L1 Shortcut Adjacencies,                  |
|      Established IS-IS L1 Adjacencies,                        |
|      Total IS-IS L1 Adjacencies,)                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
            </artset>
          </figure>
          <t><strong>where:</strong></t>
          <ul empty="true" spacing="normal">
            <li>
              <dl newline="true" spacing="normal">
                <dt><strong>Auto-FR Role:</strong></dt>
                <dd>
                  <t>A REQUIRED value indicating the node's Auto-FR role within the fabric.</t>
                  <dl newline="false" spacing="normal">
                    <dt><strong>0:</strong></dt>
                    <dd>Illegal value, MUST NOT be used.</dd>
                    <dt><strong>1:</strong></dt>
                    <dd>Auto-FR Flood Reflector Client</dd>
                    <dt><strong>2:</strong></dt>
                    <dd>Auto-FR Flood Reflector</dd>
                    <dt><strong>3:</strong></dt>
                    <dd>Auto-FR Spine (i.e. a non-ToF / non-Leaf node)</dd>
                  </dl>
                </dd>
                <dt><strong>Auto-FR Cluster ID</strong></dt>
                <dd>A REQUIRED 32-bit integer indicating the Auto-FR Cluster ID of the local node.</dd>
                <dt><strong>Established IS-IS Flood Reflector Adjacency Count</strong></dt>
                <dd>A RECOMMENDED 16-bit integer indicating the number of IS-IS Level 2 Flood Reflector adjacencies in the "Up" state on the local node.</dd>
                <dt><strong>Total IS-IS Flood Reflector Adjacency Count</strong></dt>
                <dd>A RECOMMENDED 16-bit integer indicating the total number of IS-IS Level 2 Flood Reflector adjacencies on the local node regardless of state.</dd>
                <dt><strong>Established IS-IS Level 1 Shortcut Count</strong></dt>
                <dd>A RECOMMENDED 16-bit integer indicating the number of functional IS-IS Level 1 "shortcuts" on the local node.</dd>
                <dt><strong>Total IS-IS Level 1 Shortcut Count</strong></dt>
                <dd>A RECOMMENDED 16-bit integer indicating the total number of IS-IS Level 1 "shortcuts" the local node regardless of state.</dd>
                <dt><strong>Established IS-IS Level 1 Adjacency Count</strong></dt>
                <dd>A RECOMMENDED 16-bit integer indicating the number of IS-IS Level 1 adjacencies in the "Up" state on the local node.</dd>
                <dt><strong>Total IS-IS Level 1 Adjacency Count</strong></dt>
                <dd>A RECOMMENDED 16-bit integer indicating the total number of IS-IS Level 1 adjacencies on the local node regardless of state.</dd>
              </dl>
            </li>
          </ul>
          <t>Implementations leveraging Thrift for Key-Value functionality SHOULD refer 
          to the <xref target="apx-auto-fr-kv-thrift">auto_flood_reflection_kv.thrift</xref> schema in the appendix.</t>
        </section>
      </section>
    </section>
    <section anchor="IANA" toc="default" numbered="true">
      <name>IANA Considerations</name>
      <t>This section requests the following suggested values from the RIFT Well-Known Key-Type Registry.</t>
      <table anchor="auto-fr-kv-registries" align="center">
        <name>Auto-FR Suggested Value(s) for RIFT Well-Known Key-Type Registry</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Key-Identifier</th>
            <th align="left">Description</th>
            <th align="left">Status/Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">5</td>
            <td align="left">Auto-FR Analytics (Global)</td>
            <td align="left">Key/Value pair containing operational state of a Flood Reflector Client node.</td>
            <td align="left">This document.</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document introduces no new security concerns to RIFT or other
        specifications referenced in this document as RIFT natively secures LIE 
        and TIE packets as described in <xref target="RIFT"/>.</t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>This section will be used to acknowledge major contributors.</t>
    </section>
  </middle>
  <!-- Possibly a 'Contributors' section ... -->



  <!--  *****BACK MATTER ***** -->

 <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization/>
            </author>
            <date year="2017" month="June"/>
          </front>
        </reference>
        <reference anchor="RIFT" target="https://www.ietf.org/archive/id/draft-ietf-rift-rift-18.html">
          <front>
            <title>RIFT: Routing in Fat Trees</title>
            <seriesInfo name="Work in Progress" value="draft-ietf-rift-rift-18"/>
            <author initials="T." surname="Przygienda" fullname="Tony Przygienda">
              <organization/>
            </author>
            <author initials="A." surname="Sharma" fullname="Alankar Sharma">
              <organization/>
            </author>
            <author initials="P." surname="Thubert" fullname="Pascal Thubert">
              <organization/>
            </author>
            <author initials="B." surname="Rijsman" fullname="Bruno Rijsman">
              <organization/>
            </author>
            <author initials="D." surname="Afanasiev" fullname="Dmitry Afanasiev">
              <organization/>
            </author>
            <author initials="J." surname="Head" fullname="Jordan Head">
              <organization/>
            </author>
            <date month="July" year="2023"/>
          </front>
        </reference>
        <reference anchor="RIFT-KV">
          <front>
            <title>RIFT Key/Value Structure and Registry</title>
            <seriesInfo name="Work in Progress," value="draft-ietf-rift-kv-registry-06"/>
            <author initials="J." surname="Head" fullname="Jordan Head">
              <organization/>
            </author>
            <author initials="T." surname="Przygienda" fullname="Tony Przygienda">
              <organization/>
            </author>
            <date month="July" year="2023"/>
          </front>
        </reference>
        <reference anchor="RFC9377" target="https://www.rfc-editor.org/info/rfc9377">
          <front>
            <title>IS-IS Flood Reflection</title>
            <author fullname="T. Przygienda" initials="T." role="editor" surname="Przygienda"/>
            <author fullname="C. Bowers" initials="C." surname="Bowers"/>
            <author fullname="Y. Lee" initials="Y." surname="Lee"/>
            <author fullname="A. Sharma" initials="A." surname="Sharma"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <date month="April" year="2023"/>
            <abstract>
              <t>
            This document describes a backward-compatible, optional IS-IS extension that allows the creation of IS-IS flood reflection topologies. Flood reflection permits topologies in which IS-IS Level 1 (L1) areas provide transit-forwarding for IS-IS Level 2 (L2) areas using all available L1 nodes internally. It accomplishes this by creating L2 flood reflection adjacencies within each L1 area. Those adjacencies are used to flood L2 Link State Protocol Data Units (LSPs) and are used in the L2 Shortest Path First (SPF) computation. However, they are not ordinarily utilized for forwarding within the flood reflection cluster. This arrangement gives the L2 topology significantly better scaling properties than prevalently used flat designs. As an additional benefit, only those routers directly participating in flood reflection are required to support the feature. This allows for incremental deployment of scalable L1 transit areas in an existing, previously flat network design, without the necessity of upgrading all routers in the network.
              </t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9377"/>
          <seriesInfo name="DOI" value="10.17487/RFC9377"/>
        </reference>
      </references>
    </references>
    <section anchor="apx-auto-fr-yang-models" numbered="true" toc="default">
      <name>YANG Model</name>
      <t>This section serves as a placeholder for a YANG model supporting RIFT Auto-FR.</t>
    </section>
    <section anchor="apx-auto-fr-thrift-models" numbered="true" toc="default">
      <name>Thrift Models</name>
      <t>This section contains the normative Thrift models required to support Auto-FR. 
        Per the main <xref target="RIFT">RIFT</xref> specification, all signed 
        values MUST be interpreted as unsigned values.</t>
      <section anchor="apx-auto-fr-rift-common-thrift">
        <name>common.thrift</name>
        <t>This section specifies extensions to RIFT common.thrift model.</t>
        <t>These extensions are REQUIRED in order to support Auto-FR.</t>
        <figure title="RIFT Auto-FR: common.thrift">
          <artset>
            <artwork align="left" type="ascii-art" originalSrc="art/common.thrift.ascii-art">...
enum AutoFRModel {
    TunnelMode      = 0,
    NoTunnelMode    = 1,
}

const AutoFRModel default_autofr_model = AutoFRModel.TunnelMode

typedef i32          FloodReflectionClusterIDType

const FloodReflectionClusterIDType  IllegalClusterID = 0
const FloodReflectionClusterIDType  DefaultClusterID  = 1

/// preference to become FR, higher is better
typedef i32          FloodReflectionPreferenceType

const   FloodReflectionPreferenceType MinFloodReflectionPreference = 0

...</artwork>
          </artset>
        </figure>
      </section>
      <section anchor="apx-auto-fr-encoding-thrift">
        <name>encoding.thrift</name>
        <t>This section specifies extensions to RIFT encoding.thrift model.</t>
        <t>These extensions are REQUIRED in order to support Auto-FR.</t>
        <figure title="RIFT Auto-FR: encoding.thrift">
          <artset>
            <artwork align="left" type="ascii-art" originalSrc="art/encoding.thrift.ascii-art">struct NodeCapabilities {
...
   /** indicates whether auto-flood-reflection feature is implemented on this node (but not necessarily enabled). */
   20: optional bool                           auto_flood_reflection_support = false;
...
}

struct LIEPacket {
...
   /** It provides optional version of FR ZTP as 256 * MAJOR + MINOR, indicates support for auto FR  */
   40: optional i16                                      auto_flood_reflection_version;

   41: optional common.FloodReflectionClusterIDType      auto_flood_reflection_cluster_id;
...
}

struct NodeTIEElement {
...
   /** All Auto FR elements MUST be present in at least one TIE in each direction if auto FR is running.  */
   /** It provides optional version of FR ZTP as 256 * MAJOR + MINOR, indicates support for auto FR  */
   30: optional i16                                     auto_flood_reflection_version;
   /** cluster ID of Auto FR */
   31: optional common.FloodReflectionClusterIDType     auto_flood_reflection_cluster_id;
   /** preference to become FR */
   32: optional common.FloodReflectionPreferenceType    auto_flood_reflection_preference;
...
}</artwork>
          </artset>
        </figure>
      </section>
      <section anchor="apx-auto-fr-common-flood-reflection-thrift">
        <name>common_flood_reflection.thrift</name>
        <t>This section specifies common_flood_reflection.thrift as a normative THrift model to support core functionality for Auto-FR.</t>
        <t>These extensions are REQUIRED in order to support Auto-FR.</t>
        <figure title="RIFT Auto-FR: common_flood_reflection.thrift">
          <artset>
            <artwork align="left" type="ascii-art" originalSrc="art/common_flood_reflection.thrift.ascii-art">/**
    Thrift file for common AUTO FLOOD REFLECTION definitions for RIFT

    Copyright (c) Juniper Networks, Inc., 2016-
    All rights reserved.
*/

namespace py common_flood_reflection
namespace rs models

include "common.thrift"
include "encoding.thrift"
include "statistics.thrift"

typedef     binary      ISISSystemIDType
typedef     binary      ISISL1NetType

struct AutoFRAnyRole {
    /** common loopback for all nodes */
    1: required   common.IPv6Address                    v6_loopback,
    /** ISIS L1! loopback in 10.* range, may NOT be collision free due to limited # of bytes */
    2: required   common.IPv4Address                    v4_loopback,
    4: required   ISISSystemIDType                      isis_sysid,
    5: required   ISISL1NetType                         isis_net,

   10: required   common.FloodReflectionClusterIDType   fr_cluster_id,

    /** v6 loopback prefix range, used e.g. to clean up config  */
   20: required   common.IPv6PrefixType                 v6_loopback_range,
    /** v6 loopback prefix range of FR reflector loopbacks, used e.g. to clean up config  */
   21: required   common.IPv6PrefixType                 fr_loopback_range,
    /** v6 addresses of all possible FR reflector loopbacks in this config. Can be used for e.g. cleanup */
   24: required   set&lt;common.IPv6PrefixType&gt;            possible_elected_frs,

   25: required   common.IPv4PrefixType                 v4_loopback_range,
}

struct AutoFRReflectorRole {
    1: required   common.IPv6Address                    v6_fr_addr_loopback,
}

struct AutoFRLeafRole {
    1: optional   i8                                    empty_placeholder,
}

struct AutoFRRoles {
    1: required  AutoFRAnyRole                          generic,
    2: optional  AutoFRReflectorRole                    flood_reflector,
    3: optional  AutoFRLeafRole                         leaf,
}

/// default delay before FR FSM starts to compute anything
const common.TimeIntervalInSecType          default_autofr_startup_delay = 10

/// default preference to become FR
const common.FloodReflectionPreferenceType  default_autofr_preference = 0
</artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="apx-auto-fr-kv-thrift">
      <name>auto_flood_reflection_kv.thrift</name>
      <t>This section defines auto_flood_reflection_kv.thrift as a method of supporting 
          Auto-FR analytics functionality.</t>
      <figure title="RIFT Auto-FR: auto_flood_reflection_kv.thrift">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_flood_reflection_kv.thrift.ascii-art">include "common.thrift"

namespace py auto_flood_reflection_kv
namespace rs models

typedef i32         AutoFRKeyIdentifier

typedef i16         AutoFRCounterType
typedef i32         AutoFRLongCounterType

const i8            GlobalAutoFRTelemetryKV  = 5

/** We don't need the full role structure, only an indication of the node's basic role */
enum AutoFRRole {
    ILLEGAL            = 0,
    auto_fr_leaf       = 1,
    auto_fr_reflector  = 2,
    auto_fr_spine      = 3, // i.e. non-(ToF|Leaf)
}

/** Auto-FR Global (Node) Telemetry

    1st     byte  MUST be = "Well-Known"
    2nd     byte  MUST be = "GlobalAutoFRTelemetryKV"
    3rd/4th bytes MUST be = all 0s

    Flooding Scope: Leaves only
*/
struct AutoFRTelemetryGlobalKV {
    1: required   set&lt;AutoFRRole&gt;                           auto_fr_roles,
    2: required   common.FloodReflectionClusterIDType       cluster_id,

    3: optional   AutoFRCounterType                         established_isis_fr_adjacencies_count,

    4: optional   AutoFRCounterType                         total_isis_fr_adjacencies_count,

    5: optional   AutoFRCounterType                         established_isis_l1_shortcut_adjacencies_count,

    6: optional   AutoFRCounterType                         total_isis_l1_shortcut_adjacencies_count,

    7: optional   AutoFRCounterType                         established_isis_l1_adjacencies_count,

    8: optional   AutoFRCounterType                         total_isis_l1_adjacencies_count,
}</artwork>
        </artset>
      </figure>
    </section>
    <section anchor="apx-auto-fr-variable-derivation" numbered="true" toc="default">
      <name>Auto-FR Variable Derivation</name>
      <t>This section contains the normative variable derivation algorithms that are REQUIRED to support Auto-FR.</t>
      <figure title="RIFT Auto-FR: auto_fr_const_structs_types" anchor="auto_fr_const_structs_types">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_const_structs_types.ascii-art">/// indicates how many FRs we're computing in AUTO FR
pub const MAX_AUTO_FR_FRS: usize = 3;

/// indicates the cluster has no ID, used in computations to omit effects of cluster ID
pub const NO_CLUSTER_ID: UnsignedFloodReflectionClusterIDType = 0;

/// unique v6 prefix for all nodes starts with this
pub fn auto_fr_v6pref(cid: UnsignedFloodReflectionClusterIDType) -&gt; String {
    format!("FD00:{:04X}:B1", cid)
}

/// how many bytes in a v6pref for different purposes
pub const AUTO_FR_V6PREFLEN: usize = 8 * 5;

/// unique v6 prefix for flood reflector purposes starts like this
pub fn auto_fr_v6frpref(cid: UnsignedFloodReflectionClusterIDType) -&gt; String {
    format!("FD00:{:04X}:B2", cid)
}

/// unique v4 prefix for IRB purposes
pub const AUTO_FR_V4LOOPBACKNET: u8 = 10;
pub const AUTO_FR_V4LOOPBACKMASK : usize = 8;</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_cidfrpref2frv4loopback" anchor="auto_fr_cidfrpref2frv4loopback">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_cidfrpref2frv4loopback.ascii-art">/// auto FR V4 loopback for FRs
pub fn auto_fr_cidfrpref2frv4loopback(_cid: UnsignedFloodReflectionClusterIDType,
                                    preference: u8) -&gt; Result&lt;IPv4Address, ServiceErrorType&gt; {
    if preference &gt; MAX_AUTO_FR_FRS as _ {
        Err(ServiceErrorType::INTERNALRIFTERROR)
    } else {
        let m = ((AUTO_FR_V4LOOPBACKNET as IPv4Address) &lt;&lt; (32 - AUTO_FR_V4LOOPBACKMASK)) | (preference as IPv4Address);
        Ok(m)
    }
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_cidfrpref2frv6loopback" anchor="auto_fr_cidfrpref2frv6loopback">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_cidfrpref2frv6loopback.ascii-art">/// auto FR V6 loopback for FRs
pub fn auto_fr_cidfrpref2frv6loopback(cid: UnsignedFloodReflectionClusterIDType,
                                      preference: u8) -&gt; Result&lt;Ipv6Addr, ServiceErrorType&gt; {
    auto_fr_v6prefixcidsid2loopback(&amp;auto_fr_v6frpref(cid), cid, (1 + preference) as _)
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_cidsid2isisnet" anchor="auto_fr_cidsid2isisnet">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_cidsid2isisnet.ascii-art">pub fn auto_fr_cidsid2isisnet(cid: UnsignedFloodReflectionClusterIDType, sid: UnsignedSystemID) -&gt; Vec&lt;u8&gt; {
    let mut r = vec![0x49]; // magic AFI

    // area ID derived from cluster ID
    r.extend(&amp;cid.to_ne_bytes().iter().fold(0x77u16,
                                            |prev, val| (prev ^ (val.rotate_right(4) as u16))).to_ne_bytes());
    // ISIS ID derived from system ID + cid/sid
    r.extend(auto_fr_cidsid2isissid(cid, sid).into_iter());
    // selector non v-node
    r.push(0);

    r
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_cidsid2isissid" anchor="auto_fr_cidsid2isissid">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_cidsid2isissid.ascii-art">/// ISIS system ID derivation
pub fn auto_fr_cidsid2isissid(
    cid: UnsignedFloodReflectionClusterIDType,
    sid: UnsignedSystemID) -&gt; Vec&lt;u8&gt; {

    let sb = auto_fr_v6hash(cid, sid);

    vec![sb[0],
         sb[1],
         sb[2],
         sb[3],
         sb[4] ^ sb[5].rotate_right(4),
         sb[6] ^ sb[7].rotate_right(4),
    ]
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_cidsid2v4loopback" anchor="auto_fr_cidsid2v4loopback">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_cidsid2v4loopback.ascii-art">/// v4 loopback address derivation for every node in auto-flood-reflection, returns address
pub fn auto_fr_cidsid2v4loopback(cid: UnsignedFloodReflectionClusterIDType, sid: UnsignedSystemID) -&gt; IPv4Address {
    let mut derived = sid.to_ne_bytes().iter()
        .fold(0 as IPv4Address, |p, e| (p &lt;&lt; 4) ^ (*e as IPv4Address));
    derived ^= cid as IPv4Address;
    // use the byte we loose for entropy
    derived ^= derived &gt;&gt; (32 - AUTO_FR_V4LOOPBACKMASK);
    // and sanitize for loopback range, we nuke 8 bits out
    derived &amp;= (!U32MASKS[AUTO_FR_V4LOOPBACKMASK]) as IPv4Address;

    let (frpr, frm) = auto_fr_v4frpref(cid);
    let v4m = U32MASKS[frm as usize];

    let mut m = ((AUTO_FR_V4LOOPBACKNET as IPv4Address) &lt;&lt; (32 - AUTO_FR_V4LOOPBACKMASK)) | derived;

    // collision with elected FR v4 prefixes, rederive
    if (m &amp; v4m as IPv4Address) == frpr {
        derived ^= IPv4Address::MAX;
        derived &amp;= (!U32MASKS[AUTO_FR_V4LOOPBACKMASK]) as IPv4Address;
        m = ((AUTO_FR_V4LOOPBACKNET as IPv4Address) &lt;&lt; (32 - AUTO_FR_V4LOOPBACKMASK)) | derived;
    }

    m as _
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_cidsidv6loopback" anchor="auto_fr_cidsidv6loopback">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_cidsidv6loopback.ascii-art">/// V6 loopback derivation for every node in auto fr
pub fn auto_fr_cidsidv6loopback(cid: UnsignedFloodReflectionClusterIDType,
                                  sid: UnsignedSystemID) -&gt; Result&lt;Ipv6Addr, ServiceErrorType&gt; {
    auto_fr_v6prefixcidsid2loopback(&amp;auto_fr_v6pref(cid), cid, sid)
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_sids2frs" anchor="auto_fr_sids2frs">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_sids2frs.ascii-art">/// Function sorts vector of systemIDs first,
/// Followed by a shuffle taking largest/smallest/2nd largest/2nd smallest.
/// Preference is used to take the according subsets to run this algorithm
/// sequentially.
pub(crate) fn auto_fr_sids2frs(mut v: Vec&lt;(FloodReflectionPreferenceType,
                                           UnsignedSystemID)&gt;)
                                 -&gt; Vec&lt;UnsignedSystemID&gt; {
    v.par_sort_by(|(p1, s1),
                   (p2, s2)|
        match p2.cmp(p1) {
            Ordering::Equal =&gt; s2.cmp(s1),
            e @ _ =&gt; e
        });

    let mut elected = vec![];

    while elected.len() &lt; MAX_AUTO_FR_FRS &amp;&amp; !v.is_empty() {
        let pref = (&amp;v[0]).0;

        let mut splitat = 0;
        while splitat &lt; v.len() &amp;&amp; (&amp;v[splitat]).0 == pref {
            splitat += 1;
        }

        let mut so = v.split_off(splitat);
        std::mem::swap(&amp;mut v, &amp;mut so);

        let mut mixed = if so.len() &gt; 2 {
            let mut s = so.split_off(so.len() / 2);
            s.reverse();
            interleave(so.into_iter(), s.into_iter())
                .collect::&lt;Vec&lt;_&gt;&gt;()
        } else {
            so
        };

        elected.extend(mixed.drain(..))
    }

    elected.drain(..).map(|(_, sid)| sid).collect()
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_v62octets" anchor="auto_fr_v62octets">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_v62octets.ascii-art">pub(crate) fn auto_fr_v62octets(a: Ipv6Addr) -&gt; Vec&lt;u8&gt; {
    a.octets().iter().cloned().collect()
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_v6hash" anchor="auto_fr_v6hash">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_v6hash.ascii-art">/// generic bytes derivation used for different purposes
pub fn auto_fr_v6hash(cid: UnsignedFloodReflectionClusterIDType, sid: UnsignedSystemID)
                        -&gt; [u8; 8] {
    let sub = (cid as UnsignedSystemID) ^ sid.rotate_right(8);

    sub.to_ne_bytes()
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_v6prefixcidsid2loopback" anchor="auto_fr_v6prefixcidsid2loopback">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_v6prefixcidsid2loopback.ascii-art">/// local address with encoded cluster ID and system ID for collision free identifiers. Basis
/// for several different prefixes.
pub fn auto_fr_v6prefixcidsid2loopback(v6pref: &amp;str, cid: UnsignedFloodReflectionClusterIDType,
                                       sid: UnsignedSystemID) -&gt; Result&lt;Ipv6Addr, ServiceErrorType&gt; {
    assert!(cid != ILLEGAL_CLUSTER_I_D as _);
    let a = format!("{}00::{}",
                    v6pref,
                    sid.to_ne_bytes()
                        .iter()
                        .chunks(2)
                        .into_iter()
                        .map(|chunk|
                            chunk.fold(0u16, |v, n| (v &lt;&lt; 8) | *n as u16))
                        .map(|v| format!("{:04X}", v))
                        .collect::&lt;Vec&lt;_&gt;&gt;()
                        .into_iter()
                        .join(":")
    );

    Ipv6Addr::from_str(&amp;a)
        .map_err(|_| ServiceErrorType::INTERNALRIFTERROR)
}</artwork>
        </artset>
      </figure>
      <figure title="RIFT Auto-FR: auto_fr_cid2cluster_prefixes" anchor="auto_fr_cid2cluster_prefixes">
        <artset>
          <artwork align="left" type="ascii-art" originalSrc="art/auto_fr_cid2cluster_prefixes.ascii-art">/// cluster prefixes derived instead of advertising default on the cluster to allow
/// for default route on ToF or leaves
pub fn auto_fr_cid2cluster_prefixes(cid: UnsignedFloodReflectionClusterIDType) -&gt; Result&lt;Vec&lt;IPPrefixType&gt;, ServiceErrorType&gt; {
    vec![
        (auto_fr_cidsidv6loopback(cid, ILLEGAL_SYSTEM_I_D as _), AUTO_FR_V6PREFLEN),
        (auto_fr_cidfrpref2frv6loopback(cid, 0 as _), AUTO_FR_V6PREFLEN),
    ]
        .into_iter()
        .map(|(p, _)|
            match p {
                Ok(_) =&gt; Ok(
                    IPPrefixType::Ipv6prefix(
                        IPv6PrefixType {
                            address: auto_fr_v62octets(p?),
                            prefixlen: AUTO_FR_V6PREFLEN as _,
                        })),
                Err(e) =&gt; Err(e),
            }
        )
        .collect::&lt;Result&lt;Vec&lt;_&gt;, _&gt;&gt;()
}</artwork>
        </artset>
      </figure>
    </section>
  </back>
</rfc>
