<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>9237</bug_id>
          
          <creation_ts>2006-06-02 11:02:41 -0700</creation_ts>
          <short_desc>Autogenerate JSHTMLObjectElement and add GetSVGDocument()</short_desc>
          <delta_ts>2006-07-26 22:24:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>andersca</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ggaren</cc>
    
    <cc>ian</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>44400</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-06-02 11:02:41 -0700</bug_when>
    <thetext>This patch fixes a few things:
1. Adds &quot;CanHavePluginObject&quot; support to autogeneration
2. Adds &quot;CheckDocumentSecurity&quot; support to autogeneration
3. Autogenerates JSHTMLObjectElement
4. Fixes contentDocument on HTMLObjectElement
5. Adds getSVGDocument() support to HTMLObjectElement

Issues with this patch:
- CanHavePluginObject is not quite 100% implemented.  The put() and callAsFunction() code has not been moved into the autogen script yet.
- contentDocument does not work until the object has a renderer (bug 9201)
- HTMLEmbedElement is not yet autogenerated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>44401</commentid>
    <comment_count>1</comment_count>
      <attachid>8667</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-06-02 11:03:54 -0700</bug_when>
    <thetext>Created attachment 8667
incomplete patch (someone will need to finish it)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47056</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-06-24 15:07:44 -0700</bug_when>
    <thetext>Eric has been lobbying me to finish this bug.  :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48630</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2006-07-06 16:02:04 -0700</bug_when>
    <thetext>i&apos;ll look into .. poor macdome, i&apos;m going to be harassing you for a bit while i get back up to speed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50470</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-07-21 01:06:29 -0700</bug_when>
    <thetext>This doesn&apos;t quite apply cleanly anymore. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50471</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2006-07-21 01:18:11 -0700</bug_when>
    <thetext>I know :-/
It hasn&apos;t applied cleanly for a while, i really need to learn perl properly before i start hacking it back though :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50479</commentid>
    <comment_count>6</comment_count>
      <attachid>9598</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-07-21 04:45:43 -0700</bug_when>
    <thetext>Created attachment 9598
An updated patch which does not attempt any autobinding

This patch still probably needs more lovin, including some test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50879</commentid>
    <comment_count>7</comment_count>
      <attachid>9704</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-07-26 17:30:40 -0700</bug_when>
    <thetext>Created attachment 9704
patch for review -- no autogeneration attempted, just added GetSVGDocument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50889</commentid>
    <comment_count>8</comment_count>
      <attachid>9704</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-07-26 22:01:21 -0700</bug_when>
    <thetext>Comment on attachment 9704
patch for review -- no autogeneration attempted, just added GetSVGDocument

There are a few ifdefs for SVG_SUPPORT missing, and the ChangeLog should mention the hspace/vspace fix. With that changes, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50890</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-07-26 22:24:28 -0700</bug_when>
    <thetext>I&apos;m resolving this fixed, even though it doesn&apos;t actually autogenerate anything.  Anders or someone else can open or clone this if they actually want to autogenerate HTMLObjectElement, etc.  getSVGDocument() works now which is what I cared about.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8667</attachid>
            <date>2006-06-02 11:03:54 -0700</date>
            <delta_ts>2006-06-02 11:03:54 -0700</delta_ts>
            <desc>incomplete patch (someone will need to finish it)</desc>
            <filename>partial.patch</filename>
            <type>text/plain</type>
            <size>55789</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAxNDY4NykKKysr
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzIsNiArMzcyLDEyIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHN0YXRpYyBLSlM6OkpTVmFsdWUqIG5hbWVHZXR0ZXIoS0pTOjpFeGVjU3Rh
dGUqLCBLSlM6OkpTT2JqZWN0KiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiwgY29uc3QgS0pTOjpQ
cm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBib29sIGNhbkdldEl0ZW1zRm9yTmFtZShLSlM6OkV4ZWNTdGF0ZSosICRpbXBsQ2xhc3NO
YW1lKiwgY29uc3QgQXRvbWljU3RyaW5nJik7XG4iKQogICAgIH0KKyAgICAjIFJ1bnRpbWUgb2Jq
ZWN0IGdldHRlcgorICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5I
YXZlUGx1Z2luT2JqZWN0In0pIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInByaXZh
dGU6XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgS0pTOjpK
U1ZhbHVlKiBydW50aW1lT2JqZWN0R2V0dGVyKEtKUzo6RXhlY1N0YXRlKiwgS0pTOjpKU09iamVj
dCosIGNvbnN0IEtKUzo6SWRlbnRpZmllciYsIGNvbnN0IEtKUzo6UHJvcGVydHlTbG90Jik7XG4i
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgS0pTOjpKU1ZhbHVl
KiBydW50aW1lT2JqZWN0UHJvcGVydHlHZXR0ZXIoS0pTOjpFeGVjU3RhdGUqLCBLSlM6OkpTT2Jq
ZWN0KiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiwgY29uc3QgS0pTOjpQcm9wZXJ0eVNsb3QmKTtc
biIpOworICAgIH0KICAgCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwogICAg
IApAQCAtNjU2LDYgKzY2MiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICB9CiAg
ICAgCisgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkhhdmVQbHVn
aW5PYmplY3QifSkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgZ2V0UnVudGltZU9iamVj
dEZvcigpKTsKKyAgICB9CisgICAgCiAgICAgbXkgJHJlcXVpcmVzTWFudWFsTG9va3VwID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOYW1lR2V0dGVyIn07CiAgICAgaWYgKCRyZXF1
aXJlc01hbnVhbExvb2t1cCkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjb25z
dCBIYXNoRW50cnkqIGVudHJ5ID0gTG9va3VwOjpmaW5kRW50cnkoJiR7Y2xhc3NOYW1lfVRhYmxl
LCBwcm9wZXJ0eU5hbWUpO1xuIik7CkBAIC02OTksMjggKzcwOSw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgc3dpdGNoICh0b2tlbikg
e1xuIik7CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1
dGVzfSkgewotICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7Ci0g
ICAgICAgIAotICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbSJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc2Ug
IiAuIHVjZmlyc3QoJG5hbWUpIC4gIkF0dHJOdW06XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHJldHVybiAkbmFtZShleGVjKTtcbiIpOwotICAgICAgfSBlbHNpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7Ci0gICAgICAg
IG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKLSAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9fiBzL0Nv
bnN0cnVjdG9yJC8vOwotCi0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGNhc2UgIiAu
ICRuYW1lIC4gIkNvbnN0cnVjdG9yQXR0ck51bTpcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjpnZXRDb25z
dHJ1Y3RvcihleGVjKTtcbiIpOwotICAgICAgfSBlbHNpZiAoIUB7JGF0dHJpYnV0ZS0+Z2V0dGVy
RXhjZXB0aW9uc30pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzZSAiIC4g
dWNmaXJzdCgkbmFtZSkgLiAiQXR0ck51bTpcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLCAiaW1wbC0+JG5hbWUoKSIpIC4gIjtcbiIpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzZSAiIC4gdWNmaXJzdCgkbmFtZSkgLiAiQXR0ck51
bToge1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgS0pT
OjpKU1ZhbHVlKiByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZSwgImltcGwtPiRuYW1lKGVjKSIpIC4gIjtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiIpOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKLSAgICAgIH0KKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIGF0dHJpYnV0ZUFjY2Vzc29yRm9yKCRhdHRyaWJ1dGUpKTsKICAgICB9CiAKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4gICAgcmV0dXJuIDA7XG59XG5cbiIpOwpAQCAt
NzkwLDcgKzc3OSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgIGlmKCRudW1GdW5j
dGlvbnMgbmUgMCkgewogICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1ZSogJHtjbGFzc05h
bWV9UHJvdG9GdW5jOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0
aGlzT2JqLCBjb25zdCBMaXN0JiBhcmdzKVxue1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKCF0aGlzT2JqLT5pbmhlcml0cygmJHtjbGFzc05hbWV9OjppbmZvKSlcbiIpOwot
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlw
ZUVycm9yKTtcblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7XG5cbiIpOwogCiAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFt
ZSo+KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqKS0+aW1wbCgpKTtcblxuIik7CiAg
ICAgCkBAIC04NjAsMjkgKzg0OSwzMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICB9
CiAgIAogICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0
ZXIifSkgewotICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5KU1ZhbHVlKiAke2NsYXNzTmFtZX06
OmluZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9yaWdpbmFsT2JqZWN0LCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdClc
biIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+
KHNsb3Quc2xvdEJhc2UoKSk7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm4gdG9KUyhleGVjLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmotPmltcGwo
KSktPml0ZW0oc2xvdC5pbmRleCgpKSk7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
biIpOworICAgIHB1c2goQGltcGxDb250ZW50LCBpbmRleEdldHRlckZvcigkY2xhc3NOYW1lLCAk
aW1wbENsYXNzTmFtZSkpOwogICB9Ci0gICAgCisgIAorICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ2FuSGF2ZVBsdWdpbk9iamVjdCJ9KSB7CisgICAgcHVzaChAaW1wbENv
bnRlbnQsIHJ1bnRpbWVPYmplY3RHZXR0ZXJzRm9yKCRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1l
KSk7CisgIH0KKyAgCiAgIGlmICghJGhhc1BhcmVudCkgewogICAgIG15ICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworCiBLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsICRp
bXBsQ2xhc3NOYW1lKiBvYmopCiB7CiAgICAgcmV0dXJuIEtKUzo6Y2FjaGVET01PYmplY3Q8JGlt
cGxDbGFzc05hbWUsICRjbGFzc05hbWU+KGV4ZWMsIG9iaik7CiB9CisKIEVPRgogICAgIHB1c2go
QGltcGxDb250ZW50LCAkaW1wbENvbnRlbnQpOwogICAgfQogCiAgICBpZiAoISRoYXNQYXJlbnQg
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0
ZXIifSkgewogICAgIG15ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCiAkaW1wbENsYXNzTmFt
ZSogdG8ke2ludGVyZmFjZU5hbWV9KEtKUzo6SlNWYWx1ZSogdmFsKQogewogICAgIHJldHVybiB2
YWwtPmlzT2JqZWN0KCYke2NsYXNzTmFtZX06OmluZm8pID8gc3RhdGljX2Nhc3Q8JGNsYXNzTmFt
ZSo+KHZhbCktPmltcGwoKSA6IDA7CiB9CisKIEVPRgogICAgIHB1c2goQGltcGxDb250ZW50LCAk
aW1wbENvbnRlbnQpOwogICB9CkBAIC0xMzU1LDYgKzEzNDgsNTAgQEAgc3ViIFdyaXRlRGF0YQog
ICAgIH0KIH0KIAorc3ViIGNoZWNrTm9kZVNlY3VyaXR5Rm9yKCQkKQoreworICAgIG15ICRhY2Nl
c3NvciA9IHNoaWZ0OworICAgIG15ICRuYXRpdmVSZXR1cm4gPSBzaGlmdDsKKyAgICByZXR1cm4g
ImNoZWNrTm9kZVNlY3VyaXR5KGV4ZWMsICRhY2Nlc3NvcikgPyAkbmF0aXZlUmV0dXJuIDoganNV
bmRlZmluZWQoKSI7Cit9CisKK3N1YiBhdHRyaWJ1dGVBY2Nlc3NvckZvcgoreworICAgIG15ICRh
dHRyaWJ1dGUgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZTsKKyAgICBteSAkaW1wbENvbnRlbnQgPSAiIjsKKyAgICBteSAkY2hlY2tOb2Rl
U2VjdXJpdHkgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
aGVja05vZGVTZWN1cml0eSJ9OworICAgIAorICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSkgeworICAgICAgICAkaW1wbENvbnRlbnQg
Lj0gIiAgICBjYXNlICIgLiB1Y2ZpcnN0KCRuYW1lKSAuICJBdHRyTnVtOlxuIjsKKyAgICAgICAg
JGltcGxDb250ZW50IC49ICIgICAgICAgIHJldHVybiAkbmFtZShleGVjKTtcbiI7CisgICAgfSBl
bHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7Cisg
ICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKKyAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9
fiBzL0NvbnN0cnVjdG9yJC8vOworICAgICAgICAKKyAgICAgICAgJGltcGxDb250ZW50IC49ICIg
ICAgY2FzZSAiIC4gJG5hbWUgLiAiQ29uc3RydWN0b3JBdHRyTnVtOlxuIjsKKyAgICAgICAgJGlt
cGxDb250ZW50IC49ICIgICAgICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIjo6
Z2V0Q29uc3RydWN0b3IoZXhlYyk7XG4iOworICAgIH0gZWxzaWYgKCFAeyRhdHRyaWJ1dGUtPmdl
dHRlckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICRpbXBsQ29udGVudCAuPSAiICAgIGNhc2UgIiAu
IHVjZmlyc3QoJG5hbWUpIC4gIkF0dHJOdW06XG4iOworICAgICAgICBteSAkYWNjZXNzb3IgPSAi
aW1wbC0+JG5hbWUoKSI7CisgICAgICAgIG15ICRuYXRpdmVSZXR1cm4gPSBOYXRpdmVUb0pTVmFs
dWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAkYWNjZXNzb3IpOworICAgICAgICAkbmF0aXZlUmV0
dXJuID0gY2hlY2tOb2RlU2VjdXJpdHlGb3IoJGFjY2Vzc29yLCAkbmF0aXZlUmV0dXJuKSBpZiAo
JGNoZWNrTm9kZVNlY3VyaXR5KTsKKyAgICAgICAgJGltcGxDb250ZW50IC49ICIgICAgICAgIHJl
dHVybiAiIC4gJG5hdGl2ZVJldHVybiAuICI7XG4iOworICAgIH0gZWxzZSB7CisgICAgICAgICRp
bXBsQ29udGVudCAuPSAiICAgIGNhc2UgIiAuIHVjZmlyc3QoJG5hbWUpIC4gIkF0dHJOdW06IHtc
biI7CisgICAgICAgICRpbXBsQ29udGVudCAuPSAiICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDtcbiI7CisgICAgICAgIG15ICRhY2Nlc3NvciA9ICJpbXBsLT4kbmFtZShlYykiOworICAgICAg
ICBteSAkbmF0aXZlUmV0dXJuID0gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZSwgJGFjY2Vzc29yKTsKKyAgICAgICAgJG5hdGl2ZVJldHVybiA9IGNoZWNrTm9kZVNlY3VyaXR5
Rm9yKCRhY2Nlc3NvciwgJG5hdGl2ZVJldHVybikgaWYgKCRjaGVja05vZGVTZWN1cml0eSk7Cisg
ICAgICAgICRpbXBsQ29udGVudCAuPSAiICAgICAgICBLSlM6OkpTVmFsdWUqIHJlc3VsdCA9ICIg
LiAkbmF0aXZlUmV0dXJuIC4gIjtcbiI7CisgICAgICAgICRpbXBsQ29udGVudCAuPSAiICAgICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIjsKKyAgICAgICAgJGltcGxDb250ZW50IC49
ICIgICAgICAgIHJldHVybiByZXN1bHQ7XG4iOworICAgICAgICAkaW1wbENvbnRlbnQgLj0gIiAg
ICB9XG4iOworICAgIH0KKyAgICByZXR1cm4gJGltcGxDb250ZW50OworfQorCiBzdWIgY29uc3Ry
dWN0b3JGb3IKIHsKICAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CkBAIC0xNDI3LDQgKzE0NjQs
NjkgQEAgRU9GCiAgICAgcmV0dXJuICRpbXBsQ29udGVudDsKIH0KIAorc3ViIGdldFJ1bnRpbWVP
YmplY3RGb3IKK3sKKyAgICBteSAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyAgICBpZiAocHJv
cGVydHlOYW1lID09ICJfX2FwcGxlX3J1bnRpbWVfb2JqZWN0IikgeworICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBydW50aW1lT2JqZWN0R2V0dGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIEpTVmFsdWUqIHJ1bnRpbWVPYmplY3QgPSBnZXRSdW50aW1lT2JqZWN0KGV4
ZWMsIGltcGwoKSk7CisgICAgaWYgKHJ1bnRpbWVPYmplY3QpIHsKKyAgICAgICAgSlNPYmplY3Qq
IGltcCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4ocnVudGltZU9iamVjdCk7CisgICAgICAgIGlm
IChpbXAtPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXMsIHJ1bnRpbWVPYmplY3RQcm9wZXJ0eUdldHRlcik7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KK0VPRgorICAgIHJldHVybiAkaW1w
bENvbnRlbnQ7Cit9CisKK3N1YiBydW50aW1lT2JqZWN0R2V0dGVyc0ZvcgoreworICAgIG15ICRj
bGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OworICAgIAor
ICAgIG15ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitKU1ZhbHVlKiAke2NsYXNzTmFtZX06
OnJ1bnRpbWVPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb3JpZ2luYWxP
YmplY3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90
JiBzbG90KQoreworICAgICRjbGFzc05hbWUqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDwkY2xhc3NO
YW1lKj4oc2xvdC5zbG90QmFzZSgpKTsKKyAgICAkaW1wbENsYXNzTmFtZSogZWxlbWVudCA9IHN0
YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4odGhpc09iai0+aW1wbCgpKTsKKworICAgIHJldHVy
biBnZXRSdW50aW1lT2JqZWN0KGV4ZWMsIGVsZW1lbnQpOworfQorCitKU1ZhbHVlKiAke2NsYXNz
TmFtZX06OnJ1bnRpbWVPYmplY3RQcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBvcmlnaW5hbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBjb25z
dCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgJGNsYXNzTmFtZSogdGhpc09iaiA9IHN0YXRp
Y19jYXN0PCRjbGFzc05hbWUqPihzbG90LnNsb3RCYXNlKCkpOworICAgICRpbXBsQ2xhc3NOYW1l
KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqLT5pbXBsKCkp
OworCisgICAgaWYgKEpTVmFsdWUqIHJ1bnRpbWVPYmplY3QgPSBnZXRSdW50aW1lT2JqZWN0KGV4
ZWMsIGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihydW50
aW1lT2JqZWN0KS0+Z2V0KGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Cit9CisKK0VPRgorICAgIHJldHVybiAkaW1wbENvbnRlbnQ7Cit9CisKK3N1YiBpbmRl
eEdldHRlckZvcgoreworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAkaW1wbENs
YXNzTmFtZSA9IHNoaWZ0OworICAgIG15ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitKU1Zh
bHVlKiAke2NsYXNzTmFtZX06OmluZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IG9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmogPSBzdGF0aWNf
Y2FzdDwkY2xhc3NOYW1lKj4oc2xvdC5zbG90QmFzZSgpKTsKKyAgICByZXR1cm4gdG9KUyhleGVj
LCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmotPmltcGwoKSktPml0ZW0oc2xv
dC5pbmRleCgpKSk7Cit9CisKK0VPRgorICAgIHJldHVybiAkaW1wbENvbnRlbnQ7CisgICAgCit9
CisKIDE7CkluZGV4OiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRp
bmdzL2pzL2tqc19odG1sLmgJKHJldmlzaW9uIDE0Njg3KQorKysgYmluZGluZ3MvanMva2pzX2h0
bWwuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvCi0gICAgICBzZWxlY3RfaW5mbywgb2JqZWN0X2luZm8sIAorICAgICAgc2VsZWN0X2luZm8s
IAogICAgICAgZW1iZWRfaW5mbywgdGFibGVfaW5mbywgY2FwdGlvbl9pbmZvLCBjb2xfaW5mbywg
dGFibGVzZWN0aW9uX2luZm8sIHRyX2luZm8sCiAgICAgICB0YWJsZWNlbGxfaW5mbywgZnJhbWVT
ZXRfaW5mbywgZnJhbWVfaW5mbywgaUZyYW1lX2luZm8sIG1hcnF1ZWVfaW5mbzsKIApAQCAtODks
MTQgKzg5LDEyIEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHN0cnVjdCBBY2Nlc3NvcnMgeyBHZXR0
ZXJGdW5jdGlvbiBtX2dldHRlcjsgU2V0dGVyRnVuY3Rpb24gbV9zZXR0ZXI7IH07CiAgICAgY29u
c3QgQWNjZXNzb3JzKiBhY2Nlc3NvcnMoKSBjb25zdDsKICAgICBzdGF0aWMgY29uc3QgQWNjZXNz
b3JzCi0gICAgICBzZWxlY3RfYWNjZXNzb3JzLCBvYmplY3RfYWNjZXNzb3JzLCBlbWJlZF9hY2Nl
c3NvcnMsIHRhYmxlX2FjY2Vzc29ycywKKyAgICAgIHNlbGVjdF9hY2Nlc3NvcnMsIGVtYmVkX2Fj
Y2Vzc29ycywgdGFibGVfYWNjZXNzb3JzLAogICAgICAgY2FwdGlvbl9hY2Nlc3NvcnMsIGNvbF9h
Y2Nlc3NvcnMsIHRhYmxlc2VjdGlvbl9hY2Nlc3NvcnMsIHRyX2FjY2Vzc29ycywKICAgICAgIHRh
YmxlY2VsbF9hY2Nlc3NvcnMsIGZyYW1lU2V0X2FjY2Vzc29ycywgZnJhbWVfYWNjZXNzb3JzLCBp
RnJhbWVfYWNjZXNzb3JzLCBtYXJxdWVlX2FjY2Vzc29yczsKIAogICAgIEpTVmFsdWUqIHNlbGVj
dEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7CiAgICAgdm9pZCAgc2Vs
ZWN0U2V0dGVyKEV4ZWNTdGF0ZSosIGludCB0b2tlbiwgSlNWYWx1ZSosIGNvbnN0IFdlYkNvcmU6
OlN0cmluZyYpOwotICAgIEpTVmFsdWUqIG9iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGlu
dCB0b2tlbikgY29uc3Q7Ci0gICAgdm9pZCAgb2JqZWN0U2V0dGVyKEV4ZWNTdGF0ZSosIGludCB0
b2tlbiwgSlNWYWx1ZSosIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwogICAgIEpTVmFsdWUqIGVt
YmVkR2V0dGVyKEV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7CiAgICAgdm9pZCAgZW1iZWRT
ZXR0ZXIoRXhlY1N0YXRlKiwgaW50IHRva2VuLCBKU1ZhbHVlKiwgY29uc3QgV2ViQ29yZTo6U3Ry
aW5nJik7CiAgICAgSlNWYWx1ZSogdGFibGVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwpAQCAtMTI1LDEwICsxMjMsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAg
ICAgU2VsZWN0VGFiSW5kZXgsIFNlbGVjdFZhbHVlLCBTZWxlY3RTZWxlY3RlZEluZGV4LCBTZWxl
Y3RMZW5ndGgsCiAgICAgICAgICAgIFNlbGVjdFJlbW92ZSwgU2VsZWN0Rm9ybSwgU2VsZWN0Qmx1
ciwgU2VsZWN0VHlwZSwgU2VsZWN0T3B0aW9ucywKICAgICAgICAgICAgU2VsZWN0RGlzYWJsZWQs
IFNlbGVjdE11bHRpcGxlLCBTZWxlY3ROYW1lLCBTZWxlY3ROYW1lZEl0ZW0sIFNlbGVjdFNpemUs
IFNlbGVjdEZvY3VzLAotICAgICAgICAgICBPYmplY3RIc3BhY2UsIE9iamVjdEhlaWdodCwgT2Jq
ZWN0QWxpZ24sCi0gICAgICAgICAgIE9iamVjdEJvcmRlciwgT2JqZWN0Q29kZSwgT2JqZWN0VHlw
ZSwgT2JqZWN0VnNwYWNlLCBPYmplY3RBcmNoaXZlLAotICAgICAgICAgICBPYmplY3REZWNsYXJl
LCBPYmplY3RGb3JtLCBPYmplY3RDb2RlQmFzZSwgT2JqZWN0Q29kZVR5cGUsIE9iamVjdERhdGEs
Ci0gICAgICAgICAgIE9iamVjdE5hbWUsIE9iamVjdFN0YW5kYnksIE9iamVjdFRhYkluZGV4LCBP
YmplY3RVc2VNYXAsIE9iamVjdFdpZHRoLCBPYmplY3RDb250ZW50RG9jdW1lbnQsCiAgICAgICAg
ICAgIEVtYmVkQWxpZ24sIEVtYmVkSGVpZ2h0LCBFbWJlZE5hbWUsIEVtYmVkU3JjLCBFbWJlZFR5
cGUsIEVtYmVkV2lkdGgsCiAgICAgICAgICAgIFRhYmxlU3VtbWFyeSwgVGFibGVUQm9kaWVzLCBU
YWJsZVRIZWFkLCBUYWJsZUNlbGxQYWRkaW5nLAogICAgICAgICAgICBUYWJsZURlbGV0ZUNhcHRp
b24sIFRhYmxlQ3JlYXRlQ2FwdGlvbiwgVGFibGVDYXB0aW9uLCBUYWJsZVdpZHRoLApJbmRleDog
YmluZGluZ3MvanMva2pzX2RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMva2pzX2Rv
bS5jcHAJKHJldmlzaW9uIDE0Njg3KQorKysgYmluZGluZ3MvanMva2pzX2RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYyLDcgKzYyLDkgQEAKICNpbmNsdWRlICJranNfd2luZG93LmgiCiAKICNp
ZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIkpTU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU1NW
R0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRWxlbWVudC5oIgogI2VuZGlmCiAKQEAgLTkzNCw2ICs5MzYsOCBAQCBKU1ZhbHVl
KiB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgRG9jdW1lbnQgCiAKICAgaWYgKG4tPmlzSFRNTERvY3Vt
ZW50KCkpCiAgICAgcmV0ID0gbmV3IFdlYkNvcmU6OkpTSFRNTERvY3VtZW50KGV4ZWMsIHN0YXRp
Y19jYXN0PEhUTUxEb2N1bWVudCo+KG4pKTsKKyAgZWxzZSBpZiAobi0+aXNTVkdEb2N1bWVudCgp
KQorICAgIHJldCA9IG5ldyBXZWJDb3JlOjpKU1NWR0RvY3VtZW50KGV4ZWMsIHN0YXRpY19jYXN0
PFNWR0RvY3VtZW50Kj4obikpOwogICBlbHNlCiAgICAgcmV0ID0gbmV3IEpTRG9jdW1lbnQoZXhl
Yywgbik7CiAKSW5kZXg6IGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcAkocmV2aXNpb24gMTQ2ODcpCisrKyBiaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAi
SFRNTE1lbnVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKQEAgLTk2LDYgKzk3LDcgQEAKICNp
bmNsdWRlICJKU0hUTUxNZW51RWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTE1ldGFFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSlNIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTSFRNTE9iamVj
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxPTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJK
U0hUTUxPcHRHcm91cEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxPcHRpb25FbGVtZW50Lmgi
CkBAIC0xNTMsNiArMTU1LDcgQEAgdHlwZWRlZiBET01Ob2RlKiAoKkNyZWF0ZUhUTUxFbGVtZW50
V3JhcAogICAgIG1hY3JvKG1hcCwgTWFwKSBcCiAgICAgbWFjcm8obWVudSwgTWVudSkgXAogICAg
IG1hY3JvKG1ldGEsIE1ldGEpIFwKKyAgICBtYWNybyhvYmplY3QsIE9iamVjdCkgXAogICAgIG1h
Y3JvKG9sLCBPTGlzdCkgXAogICAgIG1hY3JvKG9wdGdyb3VwLCBPcHRHcm91cCkgXAogICAgIG1h
Y3JvKG9wdGlvbiwgT3B0aW9uKSBcCkluZGV4OiBiaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCShyZXZpc2lvbiAxNDY4NykKKysr
IGJpbmRpbmdzL2pzL2tqc19odG1sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ4LDcgKzQ0OCw2
IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpmcmFtZV9pbmYKIGNvbnN0IENsYXNz
SW5mbyBKU0hUTUxFbGVtZW50OjppRnJhbWVfaW5mbyA9IHsgIkhUTUxJRnJhbWVFbGVtZW50Iiwg
JkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSUZyYW1lRWxlbWVudFRhYmxlLCAwIH07CiBjb25z
dCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aW5mbyA9IHsgIkhUTUxFbGVtZW50IiwgJkpTRWxl
bWVudDo6aW5mbywgJkhUTUxFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hU
TUxFbGVtZW50OjptYXJxdWVlX2luZm8gPSB7ICJIVE1MTWFycXVlZUVsZW1lbnQiLCAmSlNIVE1M
RWxlbWVudDo6aW5mbywgJkhUTUxNYXJxdWVlRWxlbWVudFRhYmxlLCAwIH07Ci1jb25zdCBDbGFz
c0luZm8gSlNIVE1MRWxlbWVudDo6b2JqZWN0X2luZm8gPSB7ICJIVE1MT2JqZWN0RWxlbWVudCIs
ICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTE9iamVjdEVsZW1lbnRUYWJsZSwgMCB9OwogY29u
c3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnNlbGVjdF9pbmZvID0geyAiSFRNTFNlbGVjdEVs
ZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxTZWxlY3RFbGVtZW50VGFibGUsIDAg
fTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0YWJsZV9pbmZvID0geyAiSFRNTFRh
YmxlRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRhYmxlRWxlbWVudFRhYmxl
LCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dGFibGVjZWxsX2luZm8gPSB7
ICJIVE1MVGFibGVDZWxsRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRhYmxl
Q2VsbEVsZW1lbnRUYWJsZSwgMCB9OwpAQCAtNDY3LDcgKzQ2Niw2IEBAIGNvbnN0IENsYXNzSW5m
byogSlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChmcmFt
ZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZmcmFtZVNldF9pbmZvKTsKICAgICAgICAgY2xh
c3NJbmZvTWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaUZyYW1lX2luZm8p
OwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KG1hcnF1ZWVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmbWFycXVlZV9pbmZvKTsKLSAgICAgICAgY2xhc3NJbmZvTWFwLnNldChvYmplY3RUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCAmb2JqZWN0X2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0
KHNlbGVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZzZWxlY3RfaW5mbyk7CiAgICAgICAgIGNs
YXNzSW5mb01hcC5zZXQodGFibGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVfaW5mbyk7
CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQodGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAm
dGFibGVzZWN0aW9uX2luZm8pOwpAQCAtNDg2LDcgKzQ4NCw2IEBAIGNvbnN0IENsYXNzSW5mbyog
SlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYKIH0KIAogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNz
b3JzIEpTSFRNTEVsZW1lbnQ6OnNlbGVjdF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50Ojpz
ZWxlY3RHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpzZWxlY3RTZXR0ZXIgfTsKLWNvbnN0IEpTSFRN
TEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50OjpvYmplY3RfYWNjZXNzb3JzID0geyAm
SlNIVE1MRWxlbWVudDo6b2JqZWN0R2V0dGVyLCAmSlNIVE1MRWxlbWVudDo6b2JqZWN0U2V0dGVy
IH07CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6ZW1iZWRf
YWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6ZW1iZWRHZXR0ZXIsICZKU0hUTUxFbGVtZW50
OjplbWJlZFNldHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVs
ZW1lbnQ6OnRhYmxlX2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OnRhYmxlR2V0dGVyLCAm
SlNIVE1MRWxlbWVudDo6dGFibGVTZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vz
c29ycyBKU0hUTUxFbGVtZW50OjpjYXB0aW9uX2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6
OnRhYmxlQ2FwdGlvbkdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OnRhYmxlQ2FwdGlvblNldHRlciB9
OwpAQCAtNTExLDcgKzUwOCw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNI
VE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgJmZyYW1lU2V0X2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChpZnJh
bWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaUZyYW1lX2FjY2Vzc29ycyk7CiAgICAgICAgIGFj
Y2Vzc29yTWFwLmFkZChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm1hcnF1ZWVfYWNj
ZXNzb3JzKTsKLSAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG9iamVjdFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksICZvYmplY3RfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKHNlbGVj
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZzZWxlY3RfYWNjZXNzb3JzKTsKICAgICAgICAgYWNj
ZXNzb3JNYXAuYWRkKHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlX2FjY2Vzc29y
cyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZCh0Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZ0YWJsZXNlY3Rpb25fYWNjZXNzb3JzKTsKQEAgLTU2NiwyNyArNTYyLDYgQEAgY29uc3QgSlNI
VE1MRWxlbWVudDo6QWNjZXNzb3JzKiBKU0hUTUxFbAogICBibHVyICAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6U2VsZWN0Qmx1ciAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKICAgZm9jdXMg
ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlNlbGVjdEZvY3VzICAgRG9udERlbGV0ZXxGdW5j
dGlvbiAwCiBAZW5kCi1AYmVnaW4gSFRNTE9iamVjdEVsZW1lbnRUYWJsZSAyMAotICBmb3JtICAg
ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RGb3JtICAgICAgICAgICAgRG9udERl
bGV0ZXxSZWFkT25seQotICBjb2RlICAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmpl
Y3RDb2RlICAgICAgICAgICAgRG9udERlbGV0ZQotICBhbGlnbiAgICAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpPYmplY3RBbGlnbiAgICAgICAgICAgRG9udERlbGV0ZQotICBhcmNoaXZlICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RBcmNoaXZlICAgICAgICAgRG9udERlbGV0
ZQotICBib3JkZXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RCb3JkZXIgICAg
ICAgICAgRG9udERlbGV0ZQotICBjb2RlQmFzZSAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpP
YmplY3RDb2RlQmFzZSAgICAgICAgRG9udERlbGV0ZQotICBjb2RlVHlwZSAgICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpPYmplY3RDb2RlVHlwZSAgICAgICAgRG9udERlbGV0ZQotICBjb250ZW50
RG9jdW1lbnQgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RDb250ZW50RG9jdW1lbnQgRG9udERl
bGV0ZXxSZWFkT25seQotICBkYXRhICAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmpl
Y3REYXRhICAgICAgICAgICAgRG9udERlbGV0ZQotICBkZWNsYXJlICAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpPYmplY3REZWNsYXJlICAgICAgICAgRG9udERlbGV0ZQotICBoZWlnaHQgICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RIZWlnaHQgICAgICAgICAgRG9udERlbGV0
ZQotICBoc3BhY2UgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RIc3BhY2UgICAg
ICAgICAgRG9udERlbGV0ZQotICBuYW1lICAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpP
YmplY3ROYW1lICAgICAgICAgICAgRG9udERlbGV0ZQotICBzdGFuZGJ5ICAgICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpPYmplY3RTdGFuZGJ5ICAgICAgICAgRG9udERlbGV0ZQotICB0YWJJbmRl
eCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RUYWJJbmRleCAgICAgICAgRG9udERl
bGV0ZQotICB0eXBlICAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RUeXBlICAg
ICAgICAgICAgRG9udERlbGV0ZQotICB1c2VNYXAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpPYmplY3RVc2VNYXAgICAgICAgICAgRG9udERlbGV0ZQotICB2c3BhY2UgICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpPYmplY3RWc3BhY2UgICAgICAgICAgRG9udERlbGV0ZQotICB3aWR0
aCAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RXaWR0aCAgICAgICAgICAgRG9u
dERlbGV0ZQotQGVuZAogQGJlZ2luIEhUTUxFbWJlZEVsZW1lbnRUYWJsZSA2CiAgIGFsaWduICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpFbWJlZEFsaWduICAgICAgICAgICBEb250RGVsZXRl
CiAgIGhlaWdodCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpFbWJlZEhlaWdodCAgICAgICAg
ICBEb250RGVsZXRlCkBAIC03NTcsNyArNzMyLDcgQEAgSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6
cnVudGltZU9iamVjdFBybwogICAgIEpTSFRNTEVsZW1lbnQqIHRoaXNPYmogPSBzdGF0aWNfY2Fz
dDxKU0hUTUxFbGVtZW50Kj4oc2xvdC5zbG90QmFzZSgpKTsKICAgICBIVE1MRWxlbWVudCogZWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4odGhpc09iai0+aW1wbCgpKTsKIAotICAg
IGlmIChKU1ZhbHVlICpydW50aW1lT2JqZWN0ID0gZ2V0UnVudGltZU9iamVjdChleGVjLCBlbGVt
ZW50KSkKKyAgICBpZiAoSlNWYWx1ZSogcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmplY3Qo
ZXhlYywgZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJ1
bnRpbWVPYmplY3QpLT5nZXQoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIH0KQEAgLTc4MSwxMiArNzU2LDEyIEBAIGJvb2wgSlNIVE1MRWxlbWVudDo6Z2V0
T3duUHJvcGVydHlTbG90KEUKICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGZyYW1l
c2V0TmFtZUdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAg
IH0gZWxzZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQuaGFz
TG9jYWxOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC5oYXNMb2NhbE5hbWUoYXBwbGV0VGFnKSkg
eworICAgIH0gZWxzZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpIHx8IGVsZW1l
bnQuaGFzTG9jYWxOYW1lKGFwcGxldFRhZykpIHsKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9
PSAiX19hcHBsZV9ydW50aW1lX29iamVjdCIpIHsKICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXMsIHJ1bnRpbWVPYmplY3RHZXR0ZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KLSAgICAgICAgSlNWYWx1ZSAqcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmpl
Y3QoZXhlYywmZWxlbWVudCk7CisgICAgICAgIEpTVmFsdWUqIHJ1bnRpbWVPYmplY3QgPSBnZXRS
dW50aW1lT2JqZWN0KGV4ZWMsICZlbGVtZW50KTsKICAgICAgICAgaWYgKHJ1bnRpbWVPYmplY3Qp
IHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBpbXAgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJ1
bnRpbWVPYmplY3QpOwogICAgICAgICAgICAgaWYgKGltcC0+aGFzUHJvcGVydHkoZXhlYywgcHJv
cGVydHlOYW1lKSkgewpAQCAtODE1LDkgKzc5MCw5IEBAIGJvb2wgSlNIVE1MRWxlbWVudDo6aW1w
bGVtZW50c0NhbGwoKSBjb24KICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0
PEhUTUxFbGVtZW50Kj4oaW1wbCgpKTsKICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShlbWJl
ZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQtPmhhc1Rh
Z05hbWUoYXBwbGV0VGFnKSkgewogICAgICAgICBEb2N1bWVudCogZG9jID0gZWxlbWVudC0+ZG9j
dW1lbnQoKTsKLSAgICAgICAgS0pTUHJveHkgKnByb3h5ID0gZG9jLT5mcmFtZSgpLT5qU2NyaXB0
KCk7CisgICAgICAgIEtKU1Byb3h5KiBwcm94eSA9IGRvYy0+ZnJhbWUoKS0+alNjcmlwdCgpOwog
ICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBwcm94eS0+aW50ZXJwcmV0ZXIoKS0+Z2xvYmFsRXhl
YygpOwotICAgICAgICBpZiAoSlNWYWx1ZSAqcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmpl
Y3QoZXhlYywgZWxlbWVudCkpCisgICAgICAgIGlmIChKU1ZhbHVlKiBydW50aW1lT2JqZWN0ID0g
Z2V0UnVudGltZU9iamVjdChleGVjLCBlbGVtZW50KSkKICAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxKU09iamVjdCo+KHJ1bnRpbWVPYmplY3QpLT5pbXBsZW1lbnRzQ2FsbCgpOwogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC04MjcsNyArODAyLDcgQEAgSlNWYWx1ZSAqSlNIVE1M
RWxlbWVudDo6Y2FsbEFzRnVuY3Rpb24oRQogewogICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihpbXBsKCkpOwogICAgIGlmIChlbGVtZW50LT5oYXNU
YWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxl
bWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcpKSB7Ci0gICAgICAgIGlmIChKU1ZhbHVlICpydW50
aW1lT2JqZWN0ID0gZ2V0UnVudGltZU9iamVjdChleGVjLCBlbGVtZW50KSkKKyAgICAgICAgaWYg
KEpTVmFsdWUqIHJ1bnRpbWVPYmplY3QgPSBnZXRSdW50aW1lT2JqZWN0KGV4ZWMsIGVsZW1lbnQp
KQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4ocnVudGltZU9iamVj
dCktPmNhbGwoZXhlYywgdGhpc09iaiwgYXJncyk7CiAgICAgfQogICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwpAQCAtODUyLDM0ICs4MjcsNiBAQCBKU1ZhbHVlICpKU0hUTUxFbGVtZW50OjpzZWxl
Y3RHZXR0ZXIoRXhlCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTVmFsdWUgKkpT
SFRNTEVsZW1lbnQ6Om9iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29u
c3QKLXsKLSAgICBIVE1MT2JqZWN0RWxlbWVudCYgb2JqZWN0ID0gKnN0YXRpY19jYXN0PEhUTUxP
YmplY3RFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAgIGNh
c2UgT2JqZWN0Rm9ybTogICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLG9iamVjdC5mb3JtKCkp
OyAvLyB0eXBlIEhUTUxGb3JtRWxlbWVudAotICAgICAgICBjYXNlIE9iamVjdENvZGU6ICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5jb2RlKCkpOwotICAgICAgICBjYXNlIE9iamVj
dEFsaWduOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5hbGlnbigpKTsKLSAgICAg
ICAgY2FzZSBPYmplY3RBcmNoaXZlOiAgICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QuYXJj
aGl2ZSgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RCb3JkZXI6ICAgICAgICAgIHJldHVybiBqc1N0
cmluZyhvYmplY3QuYm9yZGVyKCkpOwotICAgICAgICBjYXNlIE9iamVjdENvZGVCYXNlOiAgICAg
ICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5jb2RlQmFzZSgpKTsKLSAgICAgICAgY2FzZSBPYmpl
Y3RDb2RlVHlwZTogICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QuY29kZVR5cGUoKSk7Ci0g
ICAgICAgIGNhc2UgT2JqZWN0Q29udGVudERvY3VtZW50OiByZXR1cm4gY2hlY2tOb2RlU2VjdXJp
dHkoZXhlYyxvYmplY3QuY29udGVudERvY3VtZW50KCkpID8gCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9KUyhleGVjLCBvYmplY3QuY29udGVudERvY3VtZW50
KCkpIDoganNVbmRlZmluZWQoKTsKLSAgICAgICAgY2FzZSBPYmplY3REYXRhOiAgICAgICAgICAg
IHJldHVybiBqc1N0cmluZyhvYmplY3QuZGF0YSgpKTsKLSAgICAgICAgY2FzZSBPYmplY3REZWNs
YXJlOiAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4ob2JqZWN0LmRlY2xhcmUoKSk7Ci0gICAgICAg
IGNhc2UgT2JqZWN0SGVpZ2h0OiAgICAgICAgICByZXR1cm4ganNTdHJpbmcob2JqZWN0LmhlaWdo
dCgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RIc3BhY2U6ICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhvYmplY3QuaHNwYWNlKCkpOwotICAgICAgICBjYXNlIE9iamVjdE5hbWU6ICAgICAgICAgICAg
cmV0dXJuIGpzU3RyaW5nKG9iamVjdC5uYW1lKCkpOwotICAgICAgICBjYXNlIE9iamVjdFN0YW5k
Ynk6ICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5zdGFuZGJ5KCkpOwotICAgICAgICBj
YXNlIE9iamVjdFRhYkluZGV4OiAgICAgICAgcmV0dXJuIGpzTnVtYmVyKG9iamVjdC50YWJJbmRl
eCgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RUeXBlOiAgICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhvYmplY3QudHlwZSgpKTsKLSAgICAgICAgY2FzZSBPYmplY3RVc2VNYXA6ICAgICAgICAgIHJl
dHVybiBqc1N0cmluZyhvYmplY3QudXNlTWFwKCkpOwotICAgICAgICBjYXNlIE9iamVjdFZzcGFj
ZTogICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC52c3BhY2UoKSk7Ci0gICAgICAgIGNh
c2UgT2JqZWN0V2lkdGg6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcob2JqZWN0LndpZHRoKCkp
OwotICAgIH0KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQogSlNWYWx1ZSAqSlNIVE1M
RWxlbWVudDo6ZW1iZWRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0CiB7
CiAgICAgSFRNTEVtYmVkRWxlbWVudCYgZW1iZWQgPSAqc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxl
bWVudCo+KGltcGwoKSk7CkBAIC0xMjg3LDcgKzEyMzQsNyBAQCB2b2lkIEpTSFRNTEVsZW1lbnQ6
OnB1dChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQuaGFzTG9jYWxOYW1lKG9iamVj
dFRhZykgfHwgZWxlbWVudC5oYXNMb2NhbE5hbWUoYXBwbGV0VGFnKSkgewotICAgICAgICBpZiAo
SlNWYWx1ZSAqcnVudGltZU9iamVjdCA9IGdldFJ1bnRpbWVPYmplY3QoZXhlYywgJmVsZW1lbnQp
KSB7CisgICAgICAgIGlmIChKU1ZhbHVlKiBydW50aW1lT2JqZWN0ID0gZ2V0UnVudGltZU9iamVj
dChleGVjLCAmZWxlbWVudCkpIHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBpbXAgPSBzdGF0aWNf
Y2FzdDxKU09iamVjdCo+KHJ1bnRpbWVPYmplY3QpOwogICAgICAgICAgICAgaWYgKGltcC0+Y2Fu
UHV0KGV4ZWMsIHByb3BlcnR5TmFtZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGltcC0+cHV0
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwpAQCAtMTMzMSwzMiArMTI3OCw2IEBAIHZvaWQg
SlNIVE1MRWxlbWVudDo6c2VsZWN0U2V0dGVyKEV4ZWNTdGEKICAgICB9CiB9CiAKLXZvaWQgSlNI
VE1MRWxlbWVudDo6b2JqZWN0U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuLCBKU1Zh
bHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCi17Ci0gICAgSFRNTE9iamVj
dEVsZW1lbnQmIG9iamVjdCA9ICpzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KGltcGwo
KSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICAvLyByZWFkLW9ubHk6IGZvcm0KLSAg
ICAgICAgY2FzZSBPYmplY3RDb2RlOiAgICAgICAgICAgIHsgb2JqZWN0LnNldENvZGUoc3RyKTsg
cmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT2JqZWN0QWxpZ246ICAgICAgICAgICB7IG9iamVjdC5z
ZXRBbGlnbihzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3RBcmNoaXZlOiAgICAg
ICAgIHsgb2JqZWN0LnNldEFyY2hpdmUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT2Jq
ZWN0Qm9yZGVyOiAgICAgICAgICB7IG9iamVjdC5zZXRCb3JkZXIoc3RyKTsgcmV0dXJuOyB9Ci0g
ICAgICAgIGNhc2UgT2JqZWN0Q29kZUJhc2U6ICAgICAgICB7IG9iamVjdC5zZXRDb2RlQmFzZShz
dHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3RDb2RlVHlwZTogICAgICAgIHsgb2Jq
ZWN0LnNldENvZGVUeXBlKHN0cik7IHJldHVybjsgfQotICAgICAgICAvLyByZWFkLW9ubHk6IE9i
amVjdENvbnRlbnREb2N1bWVudAotICAgICAgICBjYXNlIE9iamVjdERhdGE6ICAgICAgICAgICAg
eyBvYmplY3Quc2V0RGF0YShzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3REZWNs
YXJlOiAgICAgICAgIHsgb2JqZWN0LnNldERlY2xhcmUodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7
IHJldHVybjsgfQotICAgICAgICBjYXNlIE9iamVjdEhlaWdodDogICAgICAgICAgeyBvYmplY3Qu
c2V0SGVpZ2h0KHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIE9iamVjdEhzcGFjZTogICAg
ICAgICAgeyBvYmplY3Quc2V0SHNwYWNlKHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIE9i
amVjdE5hbWU6ICAgICAgICAgICAgeyBvYmplY3Quc2V0TmFtZShzdHIpOyByZXR1cm47IH0KLSAg
ICAgICAgY2FzZSBPYmplY3RTdGFuZGJ5OiAgICAgICAgIHsgb2JqZWN0LnNldFN0YW5kYnkoc3Ry
KTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT2JqZWN0VGFiSW5kZXg6ICAgICAgICB7IG9iamVj
dC5zZXRUYWJJbmRleCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBj
YXNlIE9iamVjdFR5cGU6ICAgICAgICAgICAgeyBvYmplY3Quc2V0VHlwZShzdHIpOyByZXR1cm47
IH0KLSAgICAgICAgY2FzZSBPYmplY3RVc2VNYXA6ICAgICAgICAgIHsgb2JqZWN0LnNldFVzZU1h
cChzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3RWc3BhY2U6ICAgICAgICAgIHsg
b2JqZWN0LnNldFZzcGFjZShzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPYmplY3RXaWR0
aDogICAgICAgICAgIHsgb2JqZWN0LnNldFdpZHRoKHN0cik7IHJldHVybjsgfQotICAgIH0KLX0K
LQogdm9pZCBKU0hUTUxFbGVtZW50OjplbWJlZFNldHRlcihFeGVjU3RhdGUqLCBpbnQgdG9rZW4s
IEpTVmFsdWUqLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKIHsKICAgICBIVE1MRW1iZWRF
bGVtZW50JiBlbWJlZCA9ICpzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4oaW1wbCgpKTsK
SW5kZXg6IGJpbmRpbmdzL2pzL2tqc19kb20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9r
anNfZG9tLmgJKHJldmlzaW9uIDE0Njg3KQorKysgYmluZGluZ3MvanMva2pzX2RvbS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCiAgIGNsYXNzIERP
TUV2ZW50VGFyZ2V0Tm9kZSA6IHB1YmxpYyBXZWJDb3JlOjpKU05vZGUgewogICBwdWJsaWM6Ci0g
ICAgICBET01FdmVudFRhcmdldE5vZGUoRXhlY1N0YXRlICpleGVjLCBXZWJDb3JlOjpOb2RlICpu
KTsKKyAgICAgIERPTUV2ZW50VGFyZ2V0Tm9kZShFeGVjU3RhdGUqLCBXZWJDb3JlOjpOb2RlKik7
CiAKICAgICAgIHZvaWQgc2V0TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBXZWJDb3Jl
OjpBdG9taWNTdHJpbmcgJmV2ZW50VHlwZSwgSlNWYWx1ZSogZnVuYykgY29uc3Q7CiAgICAgICBK
U1ZhbHVlKiBnZXRMaXN0ZW5lcihjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcgJmV2ZW50VHlw
ZSkgY29uc3Q7CkBAIC03OCw4ICs3OCw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIERPTU5vZGVM
aXN0KEV4ZWNTdGF0ZSAqLCBXZWJDb3JlOjpOb2RlTGlzdCAqbCkgOiBtX2ltcGwobCkgeyB9CiAg
ICAgfkRPTU5vZGVMaXN0KCk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIEpTVmFs
dWUgKmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4pIGNvbnN0Owot
ICAgIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09i
amVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCZhcmdzKTsKKyAgICBKU1ZhbHVlKiBnZXRWYWx1ZVBy
b3BlcnR5KEV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7CisgICAgdmlydHVhbCBKU1ZhbHVl
ICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlz
dCZhcmdzKTsKICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NhbGwoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAgICAgLy8gbm8gcHV0IC0gYWxsIHJlYWQtb25seQogICAgIHZpcnR1YWwgY29u
c3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQpAQCAtODgs
MTEgKzg4LDExIEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGVudW0geyBMZW5ndGgsIEl0ZW0gfTsK
ICAgICBXZWJDb3JlOjpOb2RlTGlzdCAqaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQo
KTsgfQogCi0gICAgdmlydHVhbCBKU1ZhbHVlICp0b1ByaW1pdGl2ZShFeGVjU3RhdGUgKmV4ZWMs
IEpTVHlwZSBwcmVmZXJyZWQgPSBVbmRlZmluZWRUeXBlKSBjb25zdDsKKyAgICB2aXJ0dWFsIEpT
VmFsdWUgKnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIEpTVHlwZSBwcmVmZXJyZWQgPSBVbmRlZmlu
ZWRUeXBlKSBjb25zdDsKIAogICBwcml2YXRlOgotICAgIHN0YXRpYyBKU1ZhbHVlICppbmRleEdl
dHRlcihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICosIGNvbnN0IElkZW50aWZpZXImLCBjb25z
dCBQcm9wZXJ0eVNsb3QmIHNsb3QpOwotICAgIHN0YXRpYyBKU1ZhbHVlICpuYW1lR2V0dGVyKEV4
ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3Bl
cnR5U2xvdCYgc2xvdCk7CisgICAgc3RhdGljIEpTVmFsdWUgKmluZGV4R2V0dGVyKEV4ZWNTdGF0
ZSosIEpTT2JqZWN0ICosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNs
b3QpOworICAgIHN0YXRpYyBKU1ZhbHVlICpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0
ICosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpOwogCiAgICAg
UmVmUHRyPFdlYkNvcmU6Ok5vZGVMaXN0PiBtX2ltcGw7CiAgIH07CkBAIC0xMTgsNyArMTE4LDcg
QEAgbmFtZXNwYWNlIEtKUyB7CiAgIHByaXZhdGU6CiAgICAgc3RhdGljIEpTVmFsdWUgKmxlbmd0
aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0ICosIGNvbnN0IElkZW50aWZpZXImLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpOwogICAgIHN0YXRpYyBKU1ZhbHVlICppbmRleEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0ICosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpOwotICAgIHN0YXRpYyBKU1ZhbHVlICpuYW1lR2V0dGVyKEV4ZWNT
dGF0ZSAqZXhlYywgSlNPYmplY3QgKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCk7CisgICAgc3RhdGljIEpTVmFsdWUgKm5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwg
SlNPYmplY3QgKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCk7
CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6TmFtZWROb2RlTWFwPiBtX2ltcGw7CiAgIH07CkBAIC0x
MjgsMjYgKzEyOCwyNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgcHVibGljOgogICAgIERPTUV4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSAqKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7Ci0gICAgSlNWYWx1ZSAqZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0
b2tlbikgY29uc3Q7CisgICAgSlNWYWx1ZSogZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqLCBp
bnQgdG9rZW4pIGNvbnN0OwogICAgIC8vIG5vIHB1dCAtIGFsbCByZWFkLW9ubHkKICAgICB2aXJ0
dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0K
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CiAgIH07CiAKICAgSlNWYWx1ZSogdG9K
UyhFeGVjU3RhdGUqLCBXZWJDb3JlOjpEb2N1bWVudCopOwotICBib29sIGNoZWNrTm9kZVNlY3Vy
aXR5KEV4ZWNTdGF0ZSAqZXhlYywgV2ViQ29yZTo6Tm9kZSAqbik7Ci0gIEpTVmFsdWUgKmdldFJ1
bnRpbWVPYmplY3QoRXhlY1N0YXRlICpleGVjLCBXZWJDb3JlOjpOb2RlICpuKTsKKyAgYm9vbCBj
aGVja05vZGVTZWN1cml0eShFeGVjU3RhdGUqLCBXZWJDb3JlOjpOb2RlKik7CisgIEpTVmFsdWUq
IGdldFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgV2ViQ29yZTo6Tm9kZSopOwogICBKU1ZhbHVl
KiB0b0pTKEV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZT4pOwogICBKU1ZhbHVl
KiB0b0pTKEV4ZWNTdGF0ZSosIFdlYkNvcmU6Ok5hbWVkTm9kZU1hcCAqKTsKICAgSlNWYWx1ZSog
dG9KUyhFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGVMaXN0Pik7Ci0gIEpTT2Jq
ZWN0ICpnZXROb2RlQ29uc3RydWN0b3IoRXhlY1N0YXRlICpleGVjKTsKLSAgSlNPYmplY3QgKmdl
dERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSAqZXhlYyk7CisgIEpTT2JqZWN0KiBn
ZXROb2RlQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisgIEpTT2JqZWN0KiBnZXRET01FeGNlcHRp
b25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKIAogICAvLyBJbnRlcm5hbCBjbGFzcywgdXNlZCBm
b3IgdGhlIGNvbGxlY3Rpb24gcmV0dXJuIGJ5IGUuZy4gZG9jdW1lbnQuZm9ybXMubXlpbnB1dAog
ICAvLyB3aGVuIG11bHRpcGxlIG5vZGVzIGhhdmUgdGhlIHNhbWUgbmFtZS4KICAgY2xhc3MgRE9N
TmFtZWROb2Rlc0NvbGxlY3Rpb24gOiBwdWJsaWMgRE9NT2JqZWN0IHsKICAgcHVibGljOgotICAg
IERPTU5hbWVkTm9kZXNDb2xsZWN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgRGVwcmVjYXRl
ZFZhbHVlTGlzdDwgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+ID4mIG5vZGVzICk7CisgICAgRE9NTmFt
ZWROb2Rlc0NvbGxlY3Rpb24oRXhlY1N0YXRlKiwgY29uc3QgRGVwcmVjYXRlZFZhbHVlTGlzdDwg
UmVmUHRyPFdlYkNvcmU6Ok5vZGU+ID4mIG5vZGVzICk7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOwogICBwcml2YXRlOgogICAgIHN0YXRpYyBKU1ZhbHVlICpsZW5ndGhHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCAqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlT
bG90JiBzbG90KTsKSW5kZXg6IERlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gRGVy
aXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTQ2ODcpCisrKyBEZXJpdmVkU291cmNlcy5tYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5Nyw3IEBAIGFsbCA6IFwKICAgICBKU0hUTUxMSUVs
ZW1lbnQuaCBcCiAgICAgSlNIVE1MTGlua0VsZW1lbnQuaCBcCiAgICAgSlNIVE1MTWVudUVsZW1l
bnQuaCBcCisgICAgSlNIVE1MT2JqZWN0RWxlbWVudC5oIFwKICAgICBKU0hUTUxPcHRpb25FbGVt
ZW50LmggXAogICAgIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKICAgICBKU0hUTUxRdW90ZUVs
ZW1lbnQuaCBcCkluZGV4OiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTQ2ODcpCisrKyBodG1sL0hU
TUxPYmplY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCkBAIC0zNywxOSAr
MzgsMjMgQEAKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiY3NzaGVscGVyLmgiCiAKKyNp
ZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgRXZlbnROYW1lczsKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIEhUTUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVudChE
b2N1bWVudCAqZG9jKSAKLTogSFRNTFBsdWdJbkVsZW1lbnQob2JqZWN0VGFnLCBkb2MpCi0sIG1f
aW1hZ2VMb2FkZXIoMCkKKyAgICA6IEhUTUxQbHVnSW5FbGVtZW50KG9iamVjdFRhZywgZG9jKQor
ICAgICwgbmVlZFdpZGdldFVwZGF0ZShmYWxzZSkKKyAgICAsIG1fdXNlRmFsbGJhY2tDb250ZW50
KGZhbHNlKQorICAgICwgbV9pbWFnZUxvYWRlcigwKQorICAgICwgbV9jb21wbGV0ZShmYWxzZSkK
KyAgICAsIG1fZG9jTmFtZWRJdGVtKHRydWUpCiB7Ci0gICAgbmVlZFdpZGdldFVwZGF0ZSA9IGZh
bHNlOwotICAgIG1fdXNlRmFsbGJhY2tDb250ZW50ID0gZmFsc2U7Ci0gICAgbV9jb21wbGV0ZSA9
IGZhbHNlOwotICAgIG1fZG9jTmFtZWRJdGVtID0gdHJ1ZTsKIH0KIAogSFRNTE9iamVjdEVsZW1l
bnQ6On5IVE1MT2JqZWN0RWxlbWVudCgpCkBAIC03Miw3ICs3Nyw3IEBAIEtKUzo6QmluZGluZ3M6
Okluc3RhbmNlICpIVE1MT2JqZWN0RWxlbWUKICAgICBpZiAobV9pbnN0YW5jZSkKICAgICAgICAg
cmV0dXJuIG1faW5zdGFuY2UuZ2V0KCk7CiAKLSAgICBpZiAoUmVuZGVyT2JqZWN0ICpyID0gcmVu
ZGVyZXIoKSkgeworICAgIGlmIChSZW5kZXJPYmplY3QqIHIgPSByZW5kZXJlcigpKSB7CiAgICAg
ICAgIGlmIChyLT5pc1dpZGdldCgpKSB7CiAgICAgICAgICAgICBpZiAoV2lkZ2V0KiB3aWRnZXQg
PSBzdGF0aWNfY2FzdDxSZW5kZXJXaWRnZXQqPihyKS0+d2lkZ2V0KCkpIHsKICAgICAgICAgICAg
ICAgICAvLyBDYWxsIGludG8gdGhlIGZyYW1lIChhbmQgb3ZlciB0aGUgYnJpZGdlKSB0byBwdWxs
IHRoZSBCaW5kaW5nczo6SW5zdGFuY2UKQEAgLTEwNSw5ICsxMTAsOSBAQCB2b2lkIEhUTUxPYmpl
Y3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpCiAgICAgaW50IHBvczsKICAgICBpZiAoYXR0ci0+
bmFtZSgpID09IHR5cGVBdHRyKSB7CiAgICAgICAgIHNlcnZpY2VUeXBlID0gdmFsLmRlcHJlY2F0
ZWRTdHJpbmcoKS5sb3dlcigpOwotICAgICAgICBwb3MgPSBzZXJ2aWNlVHlwZS5maW5kKCAiOyIg
KTsKLSAgICAgICAgaWYgKCBwb3MhPS0xICkKLSAgICAgICAgICBzZXJ2aWNlVHlwZSA9IHNlcnZp
Y2VUeXBlLmxlZnQoIHBvcyApOworICAgICAgICBwb3MgPSBzZXJ2aWNlVHlwZS5maW5kKCI7Iik7
CisgICAgICAgIGlmIChwb3MgIT0gLTEpCisgICAgICAgICAgc2VydmljZVR5cGUgPSBzZXJ2aWNl
VHlwZS5sZWZ0KHBvcyk7CiAgICAgICAgIGlmIChyZW5kZXJlcigpKQogICAgICAgICAgIG5lZWRX
aWRnZXRVcGRhdGUgPSB0cnVlOwogICAgICAgICBpZiAoIWlzSW1hZ2VUeXBlKCkgJiYgbV9pbWFn
ZUxvYWRlcikgewpAQCAtMTU1LDIzICsxNjAsMzggQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaQogCiBEb2N1bWVudCogSFRNTE9iamVjdEVsZW1lbnQ6OmNvbnRlbnRE
b2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gIyMjCisgICAgLy8gRklYTUU6IFRoZSBmcmFtZSBs
b2FkaW5nIGNvZGUgc2hvdWxkIGJlIG1vdmVkIG91dCBvZiB0aGUgcmVuZGVyIHRyZWUKKyAgICAv
LyBhbmQgaW50byB0aGUgRE9NLiAgT25jZSB0aGF0IGhhcHBlbnMsIHRoaXMgZnVuY3Rpb24gc2hv
dWxkIGxvb2sgbW9yZSBsaWtlCisgICAgLy8gSFRNTEZyYW1lRWxlbWVudDo6Y29udGVudERvY3Vt
ZW50KCkgYW5kIG5vdCBkZXBlbmQgb24gdGhlIHJlbmRlcmVyLgorICAgIFJlbmRlck9iamVjdCog
b2JqZWN0ID0gcmVuZGVyZXIoKTsKKyAgICBpZiAob2JqZWN0ICYmIG9iamVjdC0+aXNXaWRnZXQo
KSkgeworICAgICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldCA9IHN0YXRpY19jYXN0PFJl
bmRlcldpZGdldCo+KG9iamVjdCk7CisgICAgICAgIGlmIChyZW5kZXJXaWRnZXQpIHsKKyAgICAg
ICAgICAgIFdpZGdldCogd2lkZ2V0ID0gcmVuZGVyV2lkZ2V0LT53aWRnZXQoKTsKKyAgICAgICAg
ICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7CisgICAgICAgICAgICAg
ICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQp
OworICAgICAgICAgICAgICAgIGlmIChmcmFtZVZpZXctPmZyYW1lKCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmcmFtZVZpZXctPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgSFRNTE9iamVj
dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUgKnN0eWxlKQorYm9vbCBIVE1M
T2JqZWN0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAg
ICAgaWYgKG1fdXNlRmFsbGJhY2tDb250ZW50IHx8IGlzSW1hZ2VUeXBlKCkpCiAgICAgICAgIHJl
dHVybiBIVE1MUGx1Z0luRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiAKLSAgICBG
cmFtZSAqZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOworICAgIC8vIEZJWE1FOiBUaGlzIGNo
ZWNrIGlzIFdST05HLiAgV2Ugc2hvdWxkIGNoZWNrIHRoZSBjb250ZW50IGJlZm9yZSBkaXNhYmxp
bmcsIG9yIGRvIHNvIGF0IGEgbGF0ZXIgc3RhZ2UuCisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1l
bnQoKS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGx1Z2luc0VuYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCi1S
ZW5kZXJPYmplY3QgKkhUTUxPYmplY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSAqYXJlbmEsIFJlbmRlclN0eWxlICpzdHlsZSkKK1JlbmRlck9iamVjdCAqSFRNTE9iamVjdEVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0
eWxlKQogewogICAgIGlmIChtX3VzZUZhbGxiYWNrQ29udGVudCkKICAgICAgICAgcmV0dXJuIFJl
bmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KHRoaXMsIHN0eWxlKTsKQEAgLTM1NSw3ICszNzUsNyBA
QCBTdHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6OmNvZGUoKSBjb25zdAogICAgIHJldHVybiBnZXRB
dHRyaWJ1dGUoY29kZUF0dHIpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRDb2Rl
KGNvbnN0IFN0cmluZyAmdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRDb2RlKGNv
bnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgc2V0QXR0cmlidXRlKGNvZGVBdHRyLCB2YWx1ZSk7
CiB9CkBAIC0zNjUsNyArMzg1LDcgQEAgU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50OjphcmNoaXZl
KCkgY29ucwogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoYXJjaGl2ZUF0dHIpOwogfQogCi12b2lk
IEhUTUxPYmplY3RFbGVtZW50OjpzZXRBcmNoaXZlKGNvbnN0IFN0cmluZyAmdmFsdWUpCit2b2lk
IEhUTUxPYmplY3RFbGVtZW50OjpzZXRBcmNoaXZlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAg
ICAgc2V0QXR0cmlidXRlKGFyY2hpdmVBdHRyLCB2YWx1ZSk7CiB9CkBAIC0zNzUsNyArMzk1LDcg
QEAgU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50Ojpib3JkZXIoKSBjb25zdAogICAgIHJldHVybiBn
ZXRBdHRyaWJ1dGUoYm9yZGVyQXR0cik7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNl
dEJvcmRlcihjb25zdCBTdHJpbmcgJnZhbHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0
Qm9yZGVyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgc2V0QXR0cmlidXRlKGJvcmRlckF0
dHIsIHZhbHVlKTsKIH0KQEAgLTM4NSw3ICs0MDUsNyBAQCBTdHJpbmcgSFRNTE9iamVjdEVsZW1l
bnQ6OmNvZGVCYXNlKCkgY29uCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShjb2RlYmFzZUF0dHIp
OwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRDb2RlQmFzZShjb25zdCBTdHJpbmcg
JnZhbHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZUJhc2UoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUoY29kZWJhc2VBdHRyLCB2YWx1ZSk7CiB9CkBA
IC0zOTUsNyArNDE1LDcgQEAgU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50Ojpjb2RlVHlwZSgpIGNv
bgogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoY29kZXR5cGVBdHRyKTsKIH0KIAotdm9pZCBIVE1M
T2JqZWN0RWxlbWVudDo6c2V0Q29kZVR5cGUoY29uc3QgU3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRN
TE9iamVjdEVsZW1lbnQ6OnNldENvZGVUeXBlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAg
c2V0QXR0cmlidXRlKGNvZGV0eXBlQXR0ciwgdmFsdWUpOwogfQpAQCAtNDA1LDcgKzQyNSw3IEBA
IFN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6ZGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuIGdldEF0
dHJpYnV0ZShkYXRhQXR0cik7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldERhdGEo
Y29uc3QgU3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldERhdGEoY29u
c3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUoZGF0YUF0dHIsIHZhbHVlKTsK
IH0KQEAgLTQyMCwxNCArNDQwLDE0IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldERlY2xh
cmUoYm9vbCAKICAgICBzZXRBdHRyaWJ1dGUoZGVjbGFyZUF0dHIsIGRlY2xhcmUgPyAiIiA6IDAp
OwogfQogCi1TdHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6OmhzcGFjZSgpIGNvbnN0CitpbnQgSFRN
TE9iamVjdEVsZW1lbnQ6OmhzcGFjZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGdldEF0dHJpYnV0
ZShoc3BhY2VBdHRyKTsKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGhzcGFjZUF0dHIpLnRvSW50
KCk7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldEhzcGFjZShjb25zdCBTdHJpbmcg
JnZhbHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0SHNwYWNlKGludCB2YWx1ZSkKIHsK
LSAgICBzZXRBdHRyaWJ1dGUoaHNwYWNlQXR0ciwgdmFsdWUpOworICAgIHNldEF0dHJpYnV0ZSho
c3BhY2VBdHRyLCBTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwogfQogCiBTdHJpbmcgSFRNTE9iamVj
dEVsZW1lbnQ6OnN0YW5kYnkoKSBjb25zdApAQCAtNDM1LDcgKzQ1NSw3IEBAIFN0cmluZyBIVE1M
T2JqZWN0RWxlbWVudDo6c3RhbmRieSgpIGNvbnMKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHN0
YW5kYnlBdHRyKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0U3RhbmRieShjb25z
dCBTdHJpbmcgJnZhbHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0U3RhbmRieShjb25z
dCBTdHJpbmcmIHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShzdGFuZGJ5QXR0ciwgdmFsdWUp
OwogfQpAQCAtNDU1LDcgKzQ3NSw3IEBAIFN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6dHlwZSgp
IGNvbnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZSh0eXBlQXR0cik7CiB9CiAKLXZvaWQgSFRN
TE9iamVjdEVsZW1lbnQ6OnNldFR5cGUoY29uc3QgU3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9i
amVjdEVsZW1lbnQ6OnNldFR5cGUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBzZXRBdHRy
aWJ1dGUodHlwZUF0dHIsIHZhbHVlKTsKIH0KQEAgLTQ2NSwxOSArNDg1LDMxIEBAIFN0cmluZyBI
VE1MT2JqZWN0RWxlbWVudDo6dXNlTWFwKCkgY29uc3QKICAgICByZXR1cm4gZ2V0QXR0cmlidXRl
KHVzZW1hcEF0dHIpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRVc2VNYXAoY29u
c3QgU3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldFVzZU1hcChjb25z
dCBTdHJpbmcmIHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZSh1c2VtYXBBdHRyLCB2YWx1ZSk7
CiB9CiAKLVN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6dnNwYWNlKCkgY29uc3QKK2ludCBIVE1M
T2JqZWN0RWxlbWVudDo6dnNwYWNlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0QXR0cmlidXRl
KHZzcGFjZUF0dHIpOworICAgIHJldHVybiBnZXRBdHRyaWJ1dGUodnNwYWNlQXR0cikudG9JbnQo
KTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0VnNwYWNlKGNvbnN0IFN0cmluZyAm
dmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRWc3BhY2UoaW50IHZhbHVlKQogewot
ICAgIHNldEF0dHJpYnV0ZSh2c3BhY2VBdHRyLCB2YWx1ZSk7CisgICAgc2V0QXR0cmlidXRlKHZz
cGFjZUF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CiB9CiAKKyNpZiBTVkdfU1VQUE9SVAor
U1ZHRG9jdW1lbnQqIEhUTUxPYmplY3RFbGVtZW50OjpnZXRTVkdEb2N1bWVudChFeGNlcHRpb25D
b2RlJiBlYykgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gY29udGVudERvY3VtZW50KCk7
CisgICAgaWYgKGRvYyAmJiBkb2MtPmlzU1ZHRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKTsKKyAgICAvLyBTcGVjOiBodHRwOi8vd3d3Lncz
Lm9yZy9UUi9TVkcvc3RydWN0Lmh0bWwjSW50ZXJmYWNlR2V0U1ZHRG9jdW1lbnQKKyAgICBlYyA9
IE5PVF9TVVBQT1JURURfRVJSOworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIH0KSW5kZXg6
IGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxPYmplY3RF
bGVtZW50LmgJKHJldmlzaW9uIDE0Njg3KQorKysgaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSFRNTEZvcm1FbGVtZW50OwogY2xhc3MgSFRNTEltYWdlTG9hZGVyOworY2xhc3MgU1ZHRG9j
dW1lbnQ7CiAKIGNsYXNzIEhUTUxPYmplY3RFbGVtZW50IDogcHVibGljIEhUTUxQbHVnSW5FbGVt
ZW50CiB7CkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0
ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgp
OwogICAgIAotICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKikgY29uc3Q7CkBAIC05NCw4ICs5NSw4IEBAIHB1YmxpYzoKIAogICAgIEhUTUxG
b3JtRWxlbWVudCogZm9ybSgpIGNvbnN0OwogICAgIAotICAgIFN0cmluZyBoc3BhY2UoKSBjb25z
dDsKLSAgICB2b2lkIHNldEhzcGFjZShjb25zdCBTdHJpbmcmKTsKKyAgICBpbnQgaHNwYWNlKCkg
Y29uc3Q7CisgICAgdm9pZCBzZXRIc3BhY2UoaW50KTsKIAogICAgIFN0cmluZyBzdGFuZGJ5KCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRTdGFuZGJ5KGNvbnN0IFN0cmluZyYpOwpAQCAtMTA5LDE3ICsx
MTAsMjEgQEAgcHVibGljOgogICAgIFN0cmluZyB1c2VNYXAoKSBjb25zdDsKICAgICB2b2lkIHNl
dFVzZU1hcChjb25zdCBTdHJpbmcmKTsKIAotICAgIFN0cmluZyB2c3BhY2UoKSBjb25zdDsKLSAg
ICB2b2lkIHNldFZzcGFjZShjb25zdCBTdHJpbmcmKTsKKyAgICBpbnQgdnNwYWNlKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRWc3BhY2UoaW50KTsKIAogICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY29tcGxldGU7IH0KICAgICB2b2lkIHNldENvbXBsZXRlKGJvb2wgY29tcGxl
dGUpOwogICAgIAogICAgIGJvb2wgaXNEb2NOYW1lZEl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2Rv
Y05hbWVkSXRlbTsgfQorICAgIAorI2lmIFNWR19TVVBQT1JUCisgICAgU1ZHRG9jdW1lbnQqIGdl
dFNWR0RvY3VtZW50KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyNlbmRpZgogCiAgICAgRGVwcmVj
YXRlZFN0cmluZyBzZXJ2aWNlVHlwZTsKICAgICBEZXByZWNhdGVkU3RyaW5nIHVybDsKLSAgICBX
ZWJDb3JlOjpTdHJpbmcgY2xhc3NJZDsKKyAgICBTdHJpbmcgY2xhc3NJZDsKICAgICBib29sIG5l
ZWRXaWRnZXRVcGRhdGUgOiAxOwogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRlbnQgOiAxOwog
ICAgIEhUTUxJbWFnZUxvYWRlciogbV9pbWFnZUxvYWRlcjsKSW5kZXg6IGh0bWwvSFRNTEVtYmVk
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oCShyZXZpc2lv
biAxNDY4NykKKysrIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw2ICszNSw4IEBAIG5hbWVzcGFjZSBLSlMgeyBuYW1lc3BhY2UgQmluZGluZ3MgeyBjbGEKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTVkdEb2N1bWVudDsKKwogY2xhc3MgSFRNTEVt
YmVkRWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luRWxlbWVudAogewogcHVibGljOgpAQCAtNjQs
NiArNjYsMTAgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKICAgICB2b2lk
IHNldFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCisjaWYgU1ZHX1NVUFBPUlQKKyAgICBTVkdE
b2N1bWVudCogZ2V0U1ZHRG9jdW1lbnQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworI2VuZGlmCiAK
ICAgICBEZXByZWNhdGVkU3RyaW5nIHVybDsKICAgICBEZXByZWNhdGVkU3RyaW5nIHBsdWdpblBh
Z2U7CkluZGV4OiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1s
L0hUTUxPYmplY3RFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKKysrIGh0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBN
QSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNl
IFtMZWdhY3lQYXJlbnQ9S0pTOjpKU0hUTUxFbGVtZW50LCBDYW5IYXZlUGx1Z2luT2JqZWN0XSBI
VE1MT2JqZWN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgIGNvZGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgYWxpZ247CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAg
YXJjaGl2ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICBib3Jk
ZXI7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgY29kZUJhc2U7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgY29kZVR5cGU7Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgZGF0YTsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBkZWNsYXJlOworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIGhlaWdodDsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIGxvbmcgICAgICAgICAgICBoc3BhY2U7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgbmFtZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICBzdGFuZGJ5OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAg
ICAgICAgICAgIHRhYkluZGV4OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgIHR5cGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAg
dXNlTWFwOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIHZzcGFj
ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB3aWR0aDsKKyAg
ICAgICAgCisgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tOb2RlU2VjdXJpdHldIERvY3VtZW50ICAgICAgICBjb250
ZW50RG9jdW1lbnQ7CisKKyNpZiBTVkdfU1VQUE9SVAorICAgICAgICBTVkdEb2N1bWVudCBnZXRT
VkdEb2N1bWVudCgpCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlv
biApOworI2VuZGlmCisgICAgfTsKK30KSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAJKHJldmlz
aW9uIDE0Njg3KQorKysgcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00OCw3ICs0OCw3IEBAIFJlbmRlclBhcnRPYmplY3Q6OlJlbmRlclBhcnRPYmplY3Qo
SFRNTEUKICAgICBtX2hhc0ZhbGxiYWNrQ29udGVudCA9IGZhbHNlOwogfQogCi1zdGF0aWMgYm9v
bCBpc1VSTEFsbG93ZWQoRG9jdW1lbnQgKmRvYywgY29uc3QgU3RyaW5nICZ1cmwpCitzdGF0aWMg
Ym9vbCBpc1VSTEFsbG93ZWQoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAg
ICAgS1VSTCBuZXdVUkwoZG9jLT5jb21wbGV0ZVVSTCh1cmwuZGVwcmVjYXRlZFN0cmluZygpKSk7
CiAgICAgbmV3VVJMLnNldFJlZihEZXByZWNhdGVkU3RyaW5nOjpudWxsKTsKQEAgLTU5LDcgKzU5
LDcgQEAgc3RhdGljIGJvb2wgaXNVUkxBbGxvd2VkKERvY3VtZW50ICpkb2MsIAogICAgIC8vIFdl
IGFsbG93IG9uZSBsZXZlbCBvZiBzZWxmLXJlZmVyZW5jZSBiZWNhdXNlIHNvbWUgc2l0ZXMgZGVw
ZW5kIG9uIHRoYXQuCiAgICAgLy8gQnV0IHdlIGRvbid0IGFsbG93IG1vcmUgdGhhbiBvbmUuCiAg
ICAgYm9vbCBmb3VuZFNlbGZSZWZlcmVuY2UgPSBmYWxzZTsKLSAgICBmb3IgKEZyYW1lICpmcmFt
ZSA9IGRvYy0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkp
IHsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IGRvYy0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsKICAgICAgICAgS1VSTCBmcmFtZVVSTCA9IGZyYW1l
LT51cmwoKTsKICAgICAgICAgZnJhbWVVUkwuc2V0UmVmKERlcHJlY2F0ZWRTdHJpbmc6Om51bGwp
OwogICAgICAgICBpZiAoZnJhbWVVUkwgPT0gbmV3VVJMKSB7CkBAIC0yMDcsNyArMjA3LDcgQEAg
dm9pZCBSZW5kZXJQYXJ0T2JqZWN0Ojp1cGRhdGVXaWRnZXQoKQogCiAgICAgICAvLyBGaW5kIG91
dCBpZiB3ZSBzdXBwb3J0IGZhbGxiYWNrIGNvbnRlbnQuCiAgICAgICBtX2hhc0ZhbGxiYWNrQ29u
dGVudCA9IGZhbHNlOwotICAgICAgZm9yIChOb2RlICpjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQgJiYgIW1faGFzRmFsbGJhY2tDb250ZW50OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKSB7CisgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gby0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAm
JiAhbV9oYXNGYWxsYmFja0NvbnRlbnQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
ICAgICAgICAgICBpZiAoKCFjaGlsZC0+aXNUZXh0Tm9kZSgpICYmICFjaGlsZC0+aGFzVGFnTmFt
ZShlbWJlZFRhZykgJiYgIWNoaWxkLT5oYXNUYWdOYW1lKHBhcmFtVGFnKSkgfHwgLy8gRGlzY291
bnQgPGVtYmVkPiBhbmQgPHBhcmFtPgogICAgICAgICAgICAgICAoY2hpbGQtPmlzVGV4dE5vZGUo
KSAmJiAhc3RhdGljX2Nhc3Q8VGV4dCo+KGNoaWxkKS0+Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgp
KSkKICAgICAgICAgICAgICAgbV9oYXNGYWxsYmFja0NvbnRlbnQgPSB0cnVlOwpAQCAtMjE2LDcg
KzIxNiw3IEBAIHZvaWQgUmVuZGVyUGFydE9iamVjdDo6dXBkYXRlV2lkZ2V0KCkKICAgICAgIGlm
ICghc3VjY2VzcyAmJiBtX2hhc0ZhbGxiYWNrQ29udGVudCkKICAgICAgICAgICBvLT5yZW5kZXJG
YWxsYmFja0NvbnRlbnQoKTsKICAgfSBlbHNlIGlmIChlbGVtZW50KCktPmhhc1RhZ05hbWUoZW1i
ZWRUYWcpKSB7Ci0gICAgICBIVE1MRW1iZWRFbGVtZW50ICpvID0gc3RhdGljX2Nhc3Q8SFRNTEVt
YmVkRWxlbWVudCo+KGVsZW1lbnQoKSk7CisgICAgICBIVE1MRW1iZWRFbGVtZW50KiBvID0gc3Rh
dGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGVsZW1lbnQoKSk7CiAgICAgICB1cmwgPSBvLT51
cmw7CiAgICAgICBzZXJ2aWNlVHlwZSA9IG8tPnNlcnZpY2VUeXBlOwogCkluZGV4OiByZW5kZXJp
bmcvUmVuZGVyV2lkZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlcldpZGdldC5o
CShyZXZpc2lvbiAxNDY4NykKKysrIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgg
KTsKIAogICAgIFdpZGdldCogd2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV93aWRnZXQ7IH0KKyAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fdmlldzsgfQogCiAgICAg
UmVuZGVyQXJlbmEqIHJlZigpIHsgKyttX3JlZkNvdW50OyByZXR1cm4gcmVuZGVyQXJlbmEoKTsg
fQogICAgIHZvaWQgZGVyZWYoUmVuZGVyQXJlbmEqKTsKSW5kZXg6IGRvbS9Eb2N1bWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAxNDY4NykKKysrIGRvbS9Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNiArMjEzLDcgQEAgcHVibGljOgogICAgIC8v
IE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERPTSkKICAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1
bWVudE5vZGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSFRN
TERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNT
VkdEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBDU1NTdHlsZVNlbGVj
dG9yKiBzdHlsZVNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVNlbGVjdG9yOyB9CiAK
SW5kZXg6IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0Njg3KQorKysgV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg3LDYg
KzExODcsOSBAQAogCQlBODhBRDUxNzA5NTI0OTlGMDAxREQxOTYgLyogRE9NTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg4NDI4M0QwOTMwOEMx
QzAwQjZENDYxIC8qIERPTUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBODhBRDUyRjA5NTI0QjkyMDAxREQxOTYgLyogUXVhcnR6Q29yZS5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODVEN0EyRjA4NzlFQkE5MDA2QTkxNzIgLyogUXVhcnR6Q29yZS5mcmFtZXdvcmsgKi87IH07
CiAJCUE4OEFENUFBMDk1MjUxMzEwMDFERDE5NiAvKiBTVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGNkZCMDg5
NzAxRjEwMEJBNTExNCAvKiBTVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCAqLzsgfTsKKwkJQThCREQ0
NkEwQTJFMTc3MzAwMzJGODlBIC8qIEhUTUxPYmplY3RFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCREQ0NjkwQTJFMTc3MzAwMzJG
ODlBIC8qIEhUTUxPYmplY3RFbGVtZW50LmlkbCAqLzsgfTsKKwkJQThCREQ0QTgwQTJFM0RCMTAw
MzJGODlBIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkRENEE2MEEyRTNEQjEwMDMyRjg5QSAvKiBKU0hUTUxP
YmplY3RFbGVtZW50LmggKi87IH07CisJCUE4QkRENEE5MEEyRTNEQjEwMDMyRjg5QSAvKiBKU0hU
TUxPYmplY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QkRENEE3MEEyRTNEQjEwMDMyRjg5QSAvKiBKU0hUTUxPYmplY3RFbGVtZW50
LmNwcCAqLzsgfTsKIAkJQThDNEE3RkQwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzRBN0VC
MDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmggKi87IH07CiAJCUE4QzRBN0ZFMDlE
NTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzRBN0VDMDlENTYzMjcwMDAzQUM4RCAvKiBTdHls
ZWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJQThDNEE4MDAwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDNEE3
RUUwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUuY3BwICovOyB9OwpAQCAtMjU1MSw2ICsyNTU0LDkg
QEAKIAkJQTg5MERGMUUwOTMwOTc0ODAwNTEzRjg4IC8qIFNWR1N0eWxlZExvY2F0YWJsZUVsZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdTdHlsZWRMb2NhdGFibGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QUJDOTk5MDk0NDVFQzAwMDEz
OTQ1RiAvKiBLQ2FudmFzUGF0aFF1YXJ0ei5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNQYXRoUXVhcnR6Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEFCQzk5QTA5NDQ1
RUMwMDAxMzk0NUYgLyogS0NhbnZhc1BhdGhRdWFydHoubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtDYW52YXNQYXRoUXVhcnR6Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
KwkJQThCREQ0NjkwQTJFMTc3MzAwMzJGODlBIC8qIEhUTUxPYmplY3RFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE9iamVjdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBOEJERDRBNjBBMkUzREIxMDAzMkY4OUEgLyogSlNIVE1MT2JqZWN0
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MT2JqZWN0
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEJERDRBNzBBMkUzREIx
MDAzMkY4OUEgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MT2JqZWN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4QzBGNkVCMDg5NzAxRjEwMEJBNTExNCAvKiBLQ2FudmFzUmVuZGVy
aW5nU3R5bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBLQ2FudmFzUmVuZGVyaW5nU3R5bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY2RUMwODk3MDFGMTAw
QkE1MTE0IC8qIEtDYW52YXNSZW5kZXJpbmdTdHlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNSZW5kZXJpbmdTdHlsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThD
MEY2RUYwODk3MDFGMTAwQkE1MTE0IC8qIEtTVkdUaW1lU2NoZWR1bGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS1NWR1RpbWVTY2hl
ZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKQEAgLTM2MDAsNiArMzYwNiw4IEBACiAJCQkJQTgwRTdBMTYwQTE5QzNENjAwN0ZC
OEM1IC8qIEpTSFRNTE1ldGFFbGVtZW50LmggKi8sCiAJCQkJMUFFMkFCMUYwQTFDRTYzQjAwQjQy
QjI1IC8qIEpTSFRNTE1vZEVsZW1lbnQuY3BwICovLAogCQkJCTFBRTJBQjIwMEExQ0U2M0IwMEI0
MkIyNSAvKiBKU0hUTUxNb2RFbGVtZW50LmggKi8sCisJCQkJQThCREQ0QTcwQTJFM0RCMTAwMzJG
ODlBIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuY3BwICovLAorCQkJCUE4QkRENEE2MEEyRTNEQjEw
MDMyRjg5QSAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmggKi8sCiAJCQkJMUE4NUIxRTQwQTFCMjQw
NTAwRDhDODdDIC8qIEpTSFRNTE9MaXN0RWxlbWVudC5jcHAgKi8sCiAJCQkJMUE4NUIxRTUwQTFC
MjQwNTAwRDhDODdDIC8qIEpTSFRNTE9MaXN0RWxlbWVudC5oICovLAogCQkJCUE4MEU3RTkyMEEx
QTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwICovLApAQCAtNDA5Myw2
ICs0MTAxLDcgQEAKIAkJCQlBOERGM0ZDQzA5N0ZBMEZCMDA1Mjk4MUIgLyogSFRNTE5hbWVDb2xs
ZWN0aW9uLmggKi8sCiAJCQkJQTg3MUQ0NTEwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxPYmplY3RF
bGVtZW50LmNwcCAqLywKIAkJCQlBODcxRDQ1MDBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTE9iamVj
dEVsZW1lbnQuaCAqLywKKwkJCQlBOEJERDQ2OTBBMkUxNzczMDAzMkY4OUEgLyogSFRNTE9iamVj
dEVsZW1lbnQuaWRsICovLAogCQkJCUE4RUE3OUVGMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MT0xp
c3RFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVBNzlFNTBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTE9M
aXN0RWxlbWVudC5oICovLAogCQkJCTFBODVCMUNCMEExQjIyREMwMEQ4Qzg3QyAvKiBIVE1MT0xp
c3RFbGVtZW50LmlkbCAqLywKQEAgLTYyMDUsNiArNjIxNCw3IEBACiAJCQkJQTgzM0MxMDAwQTJD
NTEzMzAwRDU3NjY0IC8qIEpTU1ZHVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODMz
QzZEODBBMkNFQTc3MDBENTc2NjQgLyogSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MzNDODBEMEEyQ0YyNTYwMEQ1NzY2NCAvKiBYTUxOYW1lcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQThCREQ0QTgwQTJFM0RCMTAwMzJGODlBIC8qIEpTSFRNTE9iamVj
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjZFNkJDMEEyRTNCMTIwMDVDMjlGQSAv
KiBJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjZFNkJGMEEyRTNCMjkwMDVD
MjlGQSAvKiBXZWJDb3JlSWNvbkRhdGFiYXNlQnJpZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CkBAIC02Mjk3LDYgKzYzMDcsNyBAQAogCQkJCUE3Qjk3QjgyMDk3OUMzQTEwMDBFOEVCMSAvKiBX
S0xpbmVhclRyYW5zZmVyRmlsdGVyLmNpa2VybmVsIGluIFJlc291cmNlcyAqLywKIAkJCQlBN0I5
N0I4NTA5NzlDM0ExMDAwRThFQjEgLyogV0tUYWJsZVRyYW5zZmVyRmlsdGVyLmNpa2VybmVsIGlu
IFJlc291cmNlcyAqLywKIAkJCQlBNzYzOEE5MjA5OTU5MkMzMDAwN0UxNEYgLyogV0tEaXNwbGFj
ZW1lbnRNYXBGaWx0ZXIuY2lrZXJuZWwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4QkRENDZBMEEy
RTE3NzMwMDMyRjg5QSAvKiBIVE1MT2JqZWN0RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAog
CQkJCUFCNDI2MUQ4MEEyRjZDOTcwMEJERDE3RCAvKiBtaXNzaW5nSW1hZ2UudGlmZiBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CkBAIC03MDQyLDYgKzcwNTMsNyBAQAogCQkJCUE4MzNDN0NDMEEyQ0YwNzQwMEQ1NzY2NCAv
KiBYTGlua05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MzNDODBDMEEyQ0YyNTYwMEQ1
NzY2NCAvKiBYTUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzg1MjBBMkNGNTI4
MDBENTc2NjQgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQThC
REQ0QTkwQTJFM0RCMTAwMzJGODlBIC8qIEpTSFRNTE9iamVjdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEyNkU2QkIwQTJFM0IxMjAwNUMyOUZBIC8qIEljb25EYXRhYmFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MTI2RTZDMDBBMkUzQjI5MDA1QzI5RkEgLyogV2ViQ29yZUlj
b25EYXRhYmFzZUJyaWRnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKSW5kZXg6IENoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE0Njg3KQorKysgQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjYgQEAKKzIwMDYtMDYtMDIgIEVyaWMgU2VpZGVs
ICA8ZXJpY0Blc2VpZGVsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRX
cmFwcGVyRmFjdG9yeS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX2RvbS5jcHA6Cisg
ICAgICAgIChLSlM6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19kb20uaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5jcHA6CisgICAgICAgIChLSlM6Oik6CisgICAg
ICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6OmNsYXNzSW5mbyk6CisgICAgICAgIChLSlM6OkpTSFRN
TEVsZW1lbnQ6OmFjY2Vzc29ycyk6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6OnJ1bnRp
bWVPYmplY3RQcm9wZXJ0eUdldHRlcik6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6OmltcGxlbWVu
dHNDYWxsKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6Y2FsbEFzRnVuY3Rpb24pOgor
ICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50OjpwdXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L2tqc19odG1sLmg6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6Oik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNTVkdEb2N1bWVudCk6CisgICAg
ICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6SFRNTE9i
amVjdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmdldElu
c3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6Y29udGVu
dERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJl
cklzTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpjcmVhdGVS
ZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0QXJjaGl2ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0Qm9yZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzZXRDb2RlQmFzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE9iamVjdEVsZW1lbnQ6OnNldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVs
ZW1lbnQ6OmhzcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0
SHNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzZXRTdGFuZGJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzZXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzZXRVc2VNYXApOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnZzcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
T2JqZWN0RWxlbWVudDo6c2V0VnNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RF
bGVtZW50OjpnZXRTVkdEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcDoKKyAgICAgICAgKFNWR0FuaW1hdGVk
UmVjdDo6U1ZHQW5pbWF0ZWRSZWN0KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50Ojppc1NWR0RvY3VtZW50KToKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0dGVybkVsZW1lbnQ6OlNWR1BhdHRlcm5FbGVtZW50KToKKyAgICAgICAgKiBrc3ZnMi9z
dmcvU1ZHUGF0dGVybkVsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGFydE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1VSTEFsbG93ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUGFydE9iamVjdDo6dXBkYXRlV2lkZ2V0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyV2lkZ2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmZyYW1l
Vmlldyk6CisKIDIwMDYtMDYtMDIgIFLDqW1pIFphcmEgIDxyZW1pX3phcmFAbWFjLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6IGtzdmcyL3N2Zy9TVkdBbmltYXRlZFJl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCShyZXZp
c2lvbiAxNDY4NykKKysrIGtzdmcyL3N2Zy9TVkdBbmltYXRlZFJlY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw3ICsyNiw4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1TVkdB
bmltYXRlZFJlY3Q6OlNWR0FuaW1hdGVkUmVjdChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250
ZXh0KSA6IFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHUmVjdD4oY29udGV4dCkKK1NWR0FuaW1hdGVk
UmVjdDo6U1ZHQW5pbWF0ZWRSZWN0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCisg
ICAgOiBTVkdBbmltYXRlZFRlbXBsYXRlPFNWR1JlY3Q+KGNvbnRleHQpCiB7CiB9CiAKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL3N2Zy9TVkdEb2N1
bWVudC5oCShyZXZpc2lvbiAxNDY4NykKKysrIGtzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw2ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFNWR0RvY3VtZW50KFNWR0RPTUltcGxlbWVudGF0aW9uICppLCBGcmFtZVZp
ZXcgKnZpZXcpOwogICAgICAgICB2aXJ0dWFsIH5TVkdEb2N1bWVudCgpOworICAgICAgICAKKyAg
ICAgICAgdmlydHVhbCBib29sIGlzU1ZHRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICAgICAgU1ZHU1ZHRWxlbWVudCAqcm9vdEVsZW1lbnQoKSBjb25zdDsKICAgICAgICAg
CkluZGV4OiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtz
dmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE0Njg3KQorKysga3N2ZzIv
c3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTEgKzUwLDE4
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHUGF0dGVybkVsZW1lbnQ6OlNWR1BhdHRl
cm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpIDog
U1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2MpLCBTVkdVUklSZWZlcmVuY2Uo
KSwgU1ZHVGVzdHMoKSwgU1ZHTGFuZ1NwYWNlKCksIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQoKSwgU1ZHRml0VG9WaWV3Qm94KCksIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyKCkKK1NWR1Bh
dHRlcm5FbGVtZW50OjpTVkdQYXR0ZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCAqZG9jKQorICAgIDogU1ZHU3R5bGVkTG9jYXRhYmxlRWxlbWVudCh0YWdO
YW1lLCBkb2MpCisgICAgLCBTVkdVUklSZWZlcmVuY2UoKQorICAgICwgU1ZHVGVzdHMoKQorICAg
ICwgU1ZHTGFuZ1NwYWNlKCkKKyAgICAsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoKQor
ICAgICwgU1ZHRml0VG9WaWV3Qm94KCkKKyAgICAsIEtDYW52YXNSZXNvdXJjZUxpc3RlbmVyKCkK
KyAgICAsIG1fdGlsZSgwKQorICAgICwgbV9pZ25vcmVBdHRyaWJ1dGVDaGFuZ2VzKGZhbHNlKQor
ICAgICwgbV9wYWludFNlcnZlcigwKQogewotICAgIG1fdGlsZSA9IDA7Ci0gICAgbV9wYWludFNl
cnZlciA9IDA7Ci0gICAgbV9pZ25vcmVBdHRyaWJ1dGVDaGFuZ2VzID0gZmFsc2U7CiB9CiAKIFNW
R1BhdHRlcm5FbGVtZW50Ojp+U1ZHUGF0dGVybkVsZW1lbnQoKQpJbmRleDoga3N2ZzIvc3ZnL1NW
R1BhdHRlcm5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmgJKHJldmlzaW9uIDE0Njg3KQorKysga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTkxLDkgKzkxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUKIAogICAg
ICAgICBtdXRhYmxlIFJlZlB0cjxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Q+IG1fcGF0dGVyblRy
YW5zZm9ybTsKIAotICAgICAgICBtdXRhYmxlIEtDYW52YXNJbWFnZSAqbV90aWxlOworICAgICAg
ICBtdXRhYmxlIEtDYW52YXNJbWFnZSogbV90aWxlOwogICAgICAgICBtdXRhYmxlIGJvb2wgbV9p
Z25vcmVBdHRyaWJ1dGVDaGFuZ2VzOwotICAgICAgICBtdXRhYmxlIEtSZW5kZXJpbmdQYWludFNl
cnZlclBhdHRlcm4gKm1fcGFpbnRTZXJ2ZXI7CisgICAgICAgIG11dGFibGUgS1JlbmRlcmluZ1Bh
aW50U2VydmVyUGF0dGVybiogbV9wYWludFNlcnZlcjsKICAgICAgICAgCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgLy8gbm90aWZ5QXR0cmlidXRlQ2hhbmdlIGhlbHBlcnM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9598</attachid>
            <date>2006-07-21 04:45:43 -0700</date>
            <delta_ts>2006-07-26 17:30:40 -0700</delta_ts>
            <desc>An updated patch which does not attempt any autobinding</desc>
            <filename>getSVGDocument.patch</filename>
            <type>text/plain</type>
            <size>20507</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTUz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMDYtMDct
MjEgIEVyaWMgU2VpZGVsICA8ZXJpY0Blc2VpZGVsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHNsaWdodGx5IG1vcmUgaGFjay1pc2ggd2F5
IG9mIGVuYWJsaW5nIEdldFNWR0RvY3VtZW50KCkKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5v
dCB0cnkgdG8gYXV0b2dlbmVyYXRlIGFueXRoaW5nLCBidXQgZW5hYmxlcyB0aGUgU1ZHIGZ1bmN0
aW9uYWxpdHkuCisgICAgICAgIEdldFNWR0RvY3VtZW50IHN1cHBvcnQgdW4tYnJlYWtzIGh1bmRy
ZWRzLCBpZiBub3QgdGhvdXNhbmRzIG9mIHJlYWwtd29ybGQgU1ZHcy4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL2tqc19kb20uY3BwOgorICAgICAgICAoS0pTOjp0b0pTKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9ranNfaHRtbC5jcHA6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6Om9i
amVjdEdldHRlcik6CisgICAgICAgIChLSlM6OkhUTUxFbGVtZW50RnVuY3Rpb246OmNhbGxBc0Z1
bmN0aW9uKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6b2JqZWN0U2V0dGVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVt
ZW50OjopOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmlzU1ZHRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Ojpjb250ZW50RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6Z2V0U1ZHRG9jdW1lbnQpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OkhU
TUxPYmplY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojpn
ZXRJbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmNv
bnRlbnREb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNldENv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNldEFyY2hpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNldEJvcmRlcik6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZUJhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNldENvZGVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxPYmplY3RFbGVtZW50OjpzZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmpl
Y3RFbGVtZW50Ojpoc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6
OnNldEhzcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0U3Rh
bmRieSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6c2V0VXNlTWFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojp2c3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE9iamVjdEVsZW1lbnQ6OnNldFZzcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2Jq
ZWN0RWxlbWVudDo6Z2V0U1ZHRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0RvY3VtZW50Ojppc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmZyYW1lVmll
dyk6CisKIDIwMDYtMDctMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYuCkluZGV4OiBiaW5kaW5ncy9qcy9ranNfZG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9ranNfZG9tLmNwcAkocmV2aXNpb24gMTU1
NTMpCisrKyBiaW5kaW5ncy9qcy9ranNfZG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyAr
NjMsOSBAQAogI2luY2x1ZGUgImtqc193aW5kb3cuaCIKIAogI2lmIFNWR19TVVBQT1JUCisjaW5j
bHVkZSAiSlNTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgiCisjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50Lmgi
CiAjZW5kaWYKIApAQCAtOTQxLDYgKzk0Myw4IEBAIEpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBEb2N1bWVudCAKIAogICBpZiAobi0+aXNIVE1MRG9jdW1lbnQoKSkKICAgICByZXQgPSBu
ZXcgV2ViQ29yZTo6SlNIVE1MRG9jdW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50
Kj4obikpOworICBlbHNlIGlmIChuLT5pc1NWR0RvY3VtZW50KCkpCisgICAgcmV0ID0gbmV3IFdl
YkNvcmU6OkpTU1ZHRG9jdW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQqPihuKSk7
CiAgIGVsc2UKICAgICByZXQgPSBuZXcgSlNEb2N1bWVudChleGVjLCBuKTsKIApJbmRleDogYmlu
ZGluZ3MvanMva2pzX2h0bWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL2pzL2tqc19odG1s
LmNwcAkocmV2aXNpb24gMTU1NTMpCisrKyBiaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc2LDYgKzc2LDEwIEBACiAjaW5jbHVkZSAia2pzX3dpbmRvdy5oIgogI2lu
Y2x1ZGUgPG1hdGguaD4KIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHRG9jdW1lbnQu
aCIKKyNlbmRpZgorCiAjaW5jbHVkZSAia2pzX2h0bWwubHV0LmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwpAQCAtNTczLDYgKzU3Nyw3IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vz
c29ycyogSlNIVE1MRWwKICAgZGVjbGFyZSAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T2Jq
ZWN0RGVjbGFyZSAgICAgICAgIERvbnREZWxldGUKICAgaGVpZ2h0ICAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6T2JqZWN0SGVpZ2h0ICAgICAgICAgIERvbnREZWxldGUKICAgaHNwYWNlICAg
ICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T2JqZWN0SHNwYWNlICAgICAgICAgIERvbnREZWxl
dGUKKyAgZ2V0U1ZHRG9jdW1lbnQgIEtKUzo6SlNIVE1MRWxlbWVudDo6T2JqZWN0R2V0U1ZHRG9j
dW1lbnQgIERvbnREZWxldGV8RnVuY3Rpb24gMAogICBuYW1lICAgICAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpPYmplY3ROYW1lICAgICAgICAgICAgRG9udERlbGV0ZQogICBzdGFuZGJ5ICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RTdGFuZGJ5ICAgICAgICAgRG9udERlbGV0
ZQogICB0YWJJbmRleCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RUYWJJbmRleCAg
ICAgICAgRG9udERlbGV0ZQpAQCAtNTg0LDYgKzU4OSw3IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6
OkFjY2Vzc29ycyogSlNIVE1MRWwKIEBiZWdpbiBIVE1MRW1iZWRFbGVtZW50VGFibGUgNgogICBh
bGlnbiAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6RW1iZWRBbGlnbiAgICAgICAgICAgRG9u
dERlbGV0ZQogICBoZWlnaHQgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6RW1iZWRIZWlnaHQg
ICAgICAgICAgRG9udERlbGV0ZQorICBnZXRTVkdEb2N1bWVudCBLSlM6OkpTSFRNTEVsZW1lbnQ6
OkVtYmVkR2V0U1ZHRG9jdW1lbnQgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiAgIG5hbWUgICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpFbWJlZE5hbWUgICAgICAgICAgICBEb250RGVsZXRlCiAg
IHNyYyAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpFbWJlZFNyYyAgICAgICAgICAgICBE
b250RGVsZXRlCiAgIHR5cGUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpFbWJlZFR5cGUg
ICAgICAgICAgICBEb250RGVsZXRlCkBAIC04NjIsMTMgKzg2OCwxMyBAQCBKU1ZhbHVlICpKU0hU
TUxFbGVtZW50OjpvYmplY3RHZXR0ZXIoRXhlCiAgICAgICAgIGNhc2UgT2JqZWN0RGF0YTogICAg
ICAgICAgICByZXR1cm4ganNTdHJpbmcob2JqZWN0LmRhdGEoKSk7CiAgICAgICAgIGNhc2UgT2Jq
ZWN0RGVjbGFyZTogICAgICAgICByZXR1cm4ganNCb29sZWFuKG9iamVjdC5kZWNsYXJlKCkpOwog
ICAgICAgICBjYXNlIE9iamVjdEhlaWdodDogICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVj
dC5oZWlnaHQoKSk7Ci0gICAgICAgIGNhc2UgT2JqZWN0SHNwYWNlOiAgICAgICAgICByZXR1cm4g
anNTdHJpbmcob2JqZWN0LmhzcGFjZSgpKTsKKyAgICAgICAgY2FzZSBPYmplY3RIc3BhY2U6ICAg
ICAgICAgIHJldHVybiBqc051bWJlcihvYmplY3QuaHNwYWNlKCkpOwogICAgICAgICBjYXNlIE9i
amVjdE5hbWU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5uYW1lKCkpOwogICAg
ICAgICBjYXNlIE9iamVjdFN0YW5kYnk6ICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5z
dGFuZGJ5KCkpOwogICAgICAgICBjYXNlIE9iamVjdFRhYkluZGV4OiAgICAgICAgcmV0dXJuIGpz
TnVtYmVyKG9iamVjdC50YWJJbmRleCgpKTsKICAgICAgICAgY2FzZSBPYmplY3RUeXBlOiAgICAg
ICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QudHlwZSgpKTsKICAgICAgICAgY2FzZSBPYmpl
Y3RVc2VNYXA6ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QudXNlTWFwKCkpOwotICAg
ICAgICBjYXNlIE9iamVjdFZzcGFjZTogICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC52
c3BhY2UoKSk7CisgICAgICAgIGNhc2UgT2JqZWN0VnNwYWNlOiAgICAgICAgICByZXR1cm4ganNO
dW1iZXIob2JqZWN0LnZzcGFjZSgpKTsKICAgICAgICAgY2FzZSBPYmplY3RXaWR0aDogICAgICAg
ICAgIHJldHVybiBqc1N0cmluZyhvYmplY3Qud2lkdGgoKSk7CiAgICAgfQogICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwpAQCAtMTI2Nyw2ICsxMjczLDE3IEBAIEpTVmFsdWUgKkhUTUxFbGVtZW50
RnVuY3Rpb246OmNhbGxBc0Z1bmMKICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
ICAgICAgICB9CiAgICAgfQorI2lmIFNWR19TVVBQT1JUCisgIGVsc2UgaWYgKGVsZW1lbnQuaGFz
TG9jYWxOYW1lKG9iamVjdFRhZykpIHsKKyAgICAgIEhUTUxPYmplY3RFbGVtZW50JiBvYmplY3Qg
PSBzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCY+KGVsZW1lbnQpOworICAgICAgaWYgKGlk
ID09IEpTSFRNTEVsZW1lbnQ6Ok9iamVjdEdldFNWR0RvY3VtZW50KQorICAgICAgICAgIHJldHVy
biBjaGVja05vZGVTZWN1cml0eShleGVjLCBvYmplY3QuZ2V0U1ZHRG9jdW1lbnQoZXhjZXB0aW9u
KSkgPyB0b0pTKGV4ZWMsIG9iamVjdC5nZXRTVkdEb2N1bWVudChleGNlcHRpb24pKSA6IGpzVW5k
ZWZpbmVkKCk7CisgIH0gZWxzZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpKSB7
CisgICAgICBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCA9IHN0YXRpY19jYXN0PEhUTUxFbWJlZEVs
ZW1lbnQmPihlbGVtZW50KTsKKyAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpFbWJlZEdl
dFNWR0RvY3VtZW50KQorICAgICAgICAgIHJldHVybiBjaGVja05vZGVTZWN1cml0eShleGVjLCBl
bWJlZC5nZXRTVkdEb2N1bWVudChleGNlcHRpb24pKSA/IHRvSlMoZXhlYywgZW1iZWQuZ2V0U1ZH
RG9jdW1lbnQoZXhjZXB0aW9uKSkgOiBqc1VuZGVmaW5lZCgpOworICB9CisjZW5kaWYKIAogICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQpAQCAtMTM0NSwxMyArMTM2MiwxMyBAQCB2b2lkIEpT
SFRNTEVsZW1lbnQ6Om9iamVjdFNldHRlcihFeGVjU3RhCiAgICAgICAgIGNhc2UgT2JqZWN0RGF0
YTogICAgICAgICAgICB7IG9iamVjdC5zZXREYXRhKHN0cik7IHJldHVybjsgfQogICAgICAgICBj
YXNlIE9iamVjdERlY2xhcmU6ICAgICAgICAgeyBvYmplY3Quc2V0RGVjbGFyZSh2YWx1ZS0+dG9C
b29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9CiAgICAgICAgIGNhc2UgT2JqZWN0SGVpZ2h0OiAgICAg
ICAgICB7IG9iamVjdC5zZXRIZWlnaHQoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT2Jq
ZWN0SHNwYWNlOiAgICAgICAgICB7IG9iamVjdC5zZXRIc3BhY2Uoc3RyKTsgcmV0dXJuOyB9Cisg
ICAgICAgIGNhc2UgT2JqZWN0SHNwYWNlOiAgICAgICAgICB7IG9iamVjdC5zZXRIc3BhY2UodmFs
dWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KICAgICAgICAgY2FzZSBPYmplY3ROYW1lOiAg
ICAgICAgICAgIHsgb2JqZWN0LnNldE5hbWUoc3RyKTsgcmV0dXJuOyB9CiAgICAgICAgIGNhc2Ug
T2JqZWN0U3RhbmRieTogICAgICAgICB7IG9iamVjdC5zZXRTdGFuZGJ5KHN0cik7IHJldHVybjsg
fQogICAgICAgICBjYXNlIE9iamVjdFRhYkluZGV4OiAgICAgICAgeyBvYmplY3Quc2V0VGFiSW5k
ZXgodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KICAgICAgICAgY2FzZSBPYmplY3RU
eXBlOiAgICAgICAgICAgIHsgb2JqZWN0LnNldFR5cGUoc3RyKTsgcmV0dXJuOyB9CiAgICAgICAg
IGNhc2UgT2JqZWN0VXNlTWFwOiAgICAgICAgICB7IG9iamVjdC5zZXRVc2VNYXAoc3RyKTsgcmV0
dXJuOyB9Ci0gICAgICAgIGNhc2UgT2JqZWN0VnNwYWNlOiAgICAgICAgICB7IG9iamVjdC5zZXRW
c3BhY2Uoc3RyKTsgcmV0dXJuOyB9CisgICAgICAgIGNhc2UgT2JqZWN0VnNwYWNlOiAgICAgICAg
ICB7IG9iamVjdC5zZXRWc3BhY2UodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KICAg
ICAgICAgY2FzZSBPYmplY3RXaWR0aDogICAgICAgICAgIHsgb2JqZWN0LnNldFdpZHRoKHN0cik7
IHJldHVybjsgfQogICAgIH0KIH0KSW5kZXg6IGJpbmRpbmdzL2pzL2tqc19odG1sLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gYmluZGluZ3MvanMva2pzX2h0bWwuaAkocmV2aXNpb24gMTU1NTMpCisrKyBiaW5k
aW5ncy9qcy9ranNfaHRtbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksOCArMTI5LDggQEAgbmFt
ZXNwYWNlIEtKUyB7CiAgICAgICAgICAgIE9iamVjdEhzcGFjZSwgT2JqZWN0SGVpZ2h0LCBPYmpl
Y3RBbGlnbiwKICAgICAgICAgICAgT2JqZWN0Qm9yZGVyLCBPYmplY3RDb2RlLCBPYmplY3RUeXBl
LCBPYmplY3RWc3BhY2UsIE9iamVjdEFyY2hpdmUsCiAgICAgICAgICAgIE9iamVjdERlY2xhcmUs
IE9iamVjdEZvcm0sIE9iamVjdENvZGVCYXNlLCBPYmplY3RDb2RlVHlwZSwgT2JqZWN0RGF0YSwK
LSAgICAgICAgICAgT2JqZWN0TmFtZSwgT2JqZWN0U3RhbmRieSwgT2JqZWN0VGFiSW5kZXgsIE9i
amVjdFVzZU1hcCwgT2JqZWN0V2lkdGgsIE9iamVjdENvbnRlbnREb2N1bWVudCwKLSAgICAgICAg
ICAgRW1iZWRBbGlnbiwgRW1iZWRIZWlnaHQsIEVtYmVkTmFtZSwgRW1iZWRTcmMsIEVtYmVkVHlw
ZSwgRW1iZWRXaWR0aCwKKyAgICAgICAgICAgT2JqZWN0TmFtZSwgT2JqZWN0U3RhbmRieSwgT2Jq
ZWN0VGFiSW5kZXgsIE9iamVjdFVzZU1hcCwgT2JqZWN0V2lkdGgsIE9iamVjdENvbnRlbnREb2N1
bWVudCwgT2JqZWN0R2V0U1ZHRG9jdW1lbnQsCisgICAgICAgICAgIEVtYmVkQWxpZ24sIEVtYmVk
SGVpZ2h0LCBFbWJlZE5hbWUsIEVtYmVkU3JjLCBFbWJlZFR5cGUsIEVtYmVkV2lkdGgsIEVtYmVk
R2V0U1ZHRG9jdW1lbnQsCiAgICAgICAgICAgIFRhYmxlU3VtbWFyeSwgVGFibGVUQm9kaWVzLCBU
YWJsZVRIZWFkLCBUYWJsZUNlbGxQYWRkaW5nLAogICAgICAgICAgICBUYWJsZURlbGV0ZUNhcHRp
b24sIFRhYmxlQ3JlYXRlQ2FwdGlvbiwgVGFibGVDYXB0aW9uLCBUYWJsZVdpZHRoLAogICAgICAg
ICAgICBUYWJsZUNyZWF0ZVRGb290LCBUYWJsZUFsaWduLCBUYWJsZVRGb290LCBUYWJsZURlbGV0
ZVJvdywKSW5kZXg6IGRvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudC5o
CShyZXZpc2lvbiAxNTU1MykKKysrIGRvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjIsNiArMjIyLDcgQEAgcHVibGljOgogICAgIC8vIE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9m
IERPTSkKICAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGx1Z2luRG9jdW1lbnQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIAogICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3Io
KSBjb25zdCB7IHJldHVybiBtX3N0eWxlU2VsZWN0b3I7IH0KSW5kZXg6IGh0bWwvSFRNTEVtYmVk
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkocmV2
aXNpb24gMTU1NTMpCisrKyBodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw2ICszMSwxMSBAQAogI2luY2x1ZGUgImNzc2hlbHBlci5oIgogI2luY2x1ZGUgIlJl
bmRlclBhcnRPYmplY3QuaCIKIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtMjA1LDQgKzIxMCwzNiBA
QCB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnNldFR5cGUoY29uc3QgU3RyCiAgICAgc2V0QXR0cmli
dXRlKHR5cGVBdHRyLCB2YWx1ZSk7CiB9CiAKKyNpZiBTVkdfU1VQUE9SVAorRG9jdW1lbnQqIEhU
TUxFbWJlZEVsZW1lbnQ6OmNvbnRlbnREb2N1bWVudCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6
IFRoZSBmcmFtZSBsb2FkaW5nIGNvZGUgc2hvdWxkIGJlIG1vdmVkIG91dCBvZiB0aGUgcmVuZGVy
IHRyZWUKKyAgICAvLyBhbmQgaW50byB0aGUgRE9NLiAgT25jZSB0aGF0IGhhcHBlbnMsIHRoaXMg
ZnVuY3Rpb24gc2hvdWxkIGxvb2sgbW9yZSBsaWtlCisgICAgLy8gSFRNTEZyYW1lRWxlbWVudDo6
Y29udGVudERvY3VtZW50KCkgYW5kIG5vdCBkZXBlbmQgb24gdGhlIHJlbmRlcmVyLgorICAgIFJl
bmRlck9iamVjdCogb2JqZWN0ID0gcmVuZGVyZXIoKTsKKyAgICBpZiAob2JqZWN0ICYmIG9iamVj
dC0+aXNXaWRnZXQoKSkgeworICAgICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldCA9IHN0
YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG9iamVjdCk7CisgICAgICAgIGlmIChyZW5kZXJXaWRn
ZXQpIHsKKyAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gcmVuZGVyV2lkZ2V0LT53aWRnZXQo
KTsKKyAgICAgICAgICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7Cisg
ICAgICAgICAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZp
ZXcqPih3aWRnZXQpOworICAgICAgICAgICAgICAgIGlmIChmcmFtZVZpZXctPmZyYW1lKCkpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZVZpZXctPmZyYW1lKCktPmRvY3VtZW50KCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK1NW
R0RvY3VtZW50KiBIVE1MRW1iZWRFbGVtZW50OjpnZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2Rl
JiBlYykgY29uc3QKK3sKKyAgICBEb2N1bWVudCogZG9jID0gY29udGVudERvY3VtZW50KCk7Cisg
ICAgaWYgKGRvYyAmJiBkb2MtPmlzU1ZHRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKTsKKyAgICAvLyBTcGVjOiBodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcvc3RydWN0Lmh0bWwjSW50ZXJmYWNlR2V0U1ZHRG9jdW1lbnQKKyAgICBlYyA9IE5P
VF9TVVBQT1JURURfRVJSOworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIH0KSW5kZXg6IGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCShyZXZpc2lvbiAxNTU1MykKKysrIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw2ICszNSw4IEBAIG5hbWVzcGFjZSBLSlMgeyBuYW1lc3BhY2UgQmluZGlu
Z3MgeyBjbGEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTVkdEb2N1bWVudDsKKwog
Y2xhc3MgSFRNTEVtYmVkRWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luRWxlbWVudAogewogcHVi
bGljOgpAQCAtNjQsNiArNjYsMTEgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHR5cGUoKSBjb25z
dDsKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCisjaWYgU1ZHX1NVUFBP
UlQKKyAgICBEb2N1bWVudCogY29udGVudERvY3VtZW50KCkgY29uc3Q7CisgICAgU1ZHRG9jdW1l
bnQqIGdldFNWR0RvY3VtZW50KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyNlbmRpZgogCiAgICAg
RGVwcmVjYXRlZFN0cmluZyB1cmw7CiAgICAgRGVwcmVjYXRlZFN0cmluZyBwbHVnaW5QYWdlOwpJ
bmRleDogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTUzKQorKysgaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJIVE1M
T2JqZWN0RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgpAQCAtMzcsMTkgKzM4LDIzIEBACiAj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImNzc2hlbHBlci5oIgogCisjaWYgU1ZHX1NVUFBP
UlQKKyNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCiBIVE1MT2JqZWN0RWxlbWVudDo6SFRNTE9iamVjdEVsZW1lbnQoRG9jdW1lbnQgKmRv
YykgCi06IEhUTUxQbHVnSW5FbGVtZW50KG9iamVjdFRhZywgZG9jKQotLCBtX2ltYWdlTG9hZGVy
KDApCisgICAgOiBIVE1MUGx1Z0luRWxlbWVudChvYmplY3RUYWcsIGRvYykKKyAgICAsIG5lZWRX
aWRnZXRVcGRhdGUoZmFsc2UpCisgICAgLCBtX3VzZUZhbGxiYWNrQ29udGVudChmYWxzZSkKKyAg
ICAsIG1faW1hZ2VMb2FkZXIoMCkKKyAgICAsIG1fY29tcGxldGUoZmFsc2UpCisgICAgLCBtX2Rv
Y05hbWVkSXRlbSh0cnVlKQogewotICAgIG5lZWRXaWRnZXRVcGRhdGUgPSBmYWxzZTsKLSAgICBt
X3VzZUZhbGxiYWNrQ29udGVudCA9IGZhbHNlOwotICAgIG1fY29tcGxldGUgPSBmYWxzZTsKLSAg
ICBtX2RvY05hbWVkSXRlbSA9IHRydWU7CiB9CiAKIEhUTUxPYmplY3RFbGVtZW50Ojp+SFRNTE9i
amVjdEVsZW1lbnQoKQpAQCAtNzIsNyArNzcsNyBAQCBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSAq
SFRNTE9iamVjdEVsZW1lCiAgICAgaWYgKG1faW5zdGFuY2UpCiAgICAgICAgIHJldHVybiBtX2lu
c3RhbmNlLmdldCgpOwogCi0gICAgaWYgKFJlbmRlck9iamVjdCAqciA9IHJlbmRlcmVyKCkpIHsK
KyAgICBpZiAoUmVuZGVyT2JqZWN0KiByID0gcmVuZGVyZXIoKSkgewogICAgICAgICBpZiAoci0+
aXNXaWRnZXQoKSkgewogICAgICAgICAgICAgaWYgKFdpZGdldCogd2lkZ2V0ID0gc3RhdGljX2Nh
c3Q8UmVuZGVyV2lkZ2V0Kj4ociktPndpZGdldCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gQ2Fs
bCBpbnRvIHRoZSBmcmFtZSAoYW5kIG92ZXIgdGhlIGJyaWRnZSkgdG8gcHVsbCB0aGUgQmluZGlu
Z3M6Okluc3RhbmNlCkBAIC0xMDUsOSArMTEwLDkgQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaQogICAgIGludCBwb3M7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSB0
eXBlQXR0cikgewogICAgICAgICBzZXJ2aWNlVHlwZSA9IHZhbC5kZXByZWNhdGVkU3RyaW5nKCku
bG93ZXIoKTsKLSAgICAgICAgcG9zID0gc2VydmljZVR5cGUuZmluZCggIjsiICk7Ci0gICAgICAg
IGlmICggcG9zIT0tMSApCi0gICAgICAgICAgc2VydmljZVR5cGUgPSBzZXJ2aWNlVHlwZS5sZWZ0
KCBwb3MgKTsKKyAgICAgICAgcG9zID0gc2VydmljZVR5cGUuZmluZCgiOyIpOworICAgICAgICBp
ZiAocG9zICE9IC0xKQorICAgICAgICAgIHNlcnZpY2VUeXBlID0gc2VydmljZVR5cGUubGVmdChw
b3MpOwogICAgICAgICBpZiAocmVuZGVyZXIoKSkKICAgICAgICAgICBuZWVkV2lkZ2V0VXBkYXRl
ID0gdHJ1ZTsKICAgICAgICAgaWYgKCFpc0ltYWdlVHlwZSgpICYmIG1faW1hZ2VMb2FkZXIpIHsK
QEAgLTE1NSwyMyArMTYwLDM4IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmkKIAogRG9jdW1lbnQqIEhUTUxPYmplY3RFbGVtZW50Ojpjb250ZW50RG9jdW1lbnQoKSBj
b25zdAogewotICAgIC8vICMjIworICAgIC8vIEZJWE1FOiBUaGUgZnJhbWUgbG9hZGluZyBjb2Rl
IHNob3VsZCBiZSBtb3ZlZCBvdXQgb2YgdGhlIHJlbmRlciB0cmVlCisgICAgLy8gYW5kIGludG8g
dGhlIERPTS4gIE9uY2UgdGhhdCBoYXBwZW5zLCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBsb29rIG1v
cmUgbGlrZQorICAgIC8vIEhUTUxGcmFtZUVsZW1lbnQ6OmNvbnRlbnREb2N1bWVudCgpIGFuZCBu
b3QgZGVwZW5kIG9uIHRoZSByZW5kZXJlci4KKyAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9IHJl
bmRlcmVyKCk7CisgICAgaWYgKG9iamVjdCAmJiBvYmplY3QtPmlzV2lkZ2V0KCkpIHsKKyAgICAg
ICAgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQgPSBzdGF0aWNfY2FzdDxSZW5kZXJXaWRnZXQq
PihvYmplY3QpOworICAgICAgICBpZiAocmVuZGVyV2lkZ2V0KSB7CisgICAgICAgICAgICBXaWRn
ZXQqIHdpZGdldCA9IHJlbmRlcldpZGdldC0+d2lkZ2V0KCk7CisgICAgICAgICAgICBpZiAod2lk
Z2V0ICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkgeworICAgICAgICAgICAgICAgIEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KTsKKyAgICAgICAg
ICAgICAgICBpZiAoZnJhbWVWaWV3LT5mcmFtZSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZnJhbWVWaWV3LT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQogICAgIHJldHVybiAwOwogfQogCi1ib29sIEhUTUxPYmplY3RFbGVtZW50Ojpy
ZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlICpzdHlsZSkKK2Jvb2wgSFRNTE9iamVjdEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIGlmIChtX3Vz
ZUZhbGxiYWNrQ29udGVudCB8fCBpc0ltYWdlVHlwZSgpKQogICAgICAgICByZXR1cm4gSFRNTFBs
dWdJbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogCi0gICAgRnJhbWUgKmZyYW1l
ID0gZG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICAvLyBGSVhNRTogVGhpcyBjaGVjayBpcyBXUk9O
Ry4gIFdlIHNob3VsZCBjaGVjayB0aGUgY29udGVudCBiZWZvcmUgZGlzYWJsaW5nLCBvciBkbyBz
byBhdCBhIGxhdGVyIHN0YWdlLgorICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1l
KCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnBsdWdpbnNFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVuZGVyT2JqZWN0
ICpIVE1MT2JqZWN0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBS
ZW5kZXJTdHlsZSAqc3R5bGUpCitSZW5kZXJPYmplY3QgKkhUTUxPYmplY3RFbGVtZW50OjpjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAg
ICBpZiAobV91c2VGYWxsYmFja0NvbnRlbnQpCiAgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6
OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CkBAIC0zNTUsNyArMzc1LDcgQEAgU3RyaW5nIEhU
TUxPYmplY3RFbGVtZW50Ojpjb2RlKCkgY29uc3QKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGNv
ZGVBdHRyKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZShjb25zdCBTdHJp
bmcgJnZhbHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZShjb25zdCBTdHJpbmcm
IHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShjb2RlQXR0ciwgdmFsdWUpOwogfQpAQCAtMzY1
LDcgKzM4NSw3IEBAIFN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6YXJjaGl2ZSgpIGNvbnMKICAg
ICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyY2hpdmVBdHRyKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0
RWxlbWVudDo6c2V0QXJjaGl2ZShjb25zdCBTdHJpbmcgJnZhbHVlKQordm9pZCBIVE1MT2JqZWN0
RWxlbWVudDo6c2V0QXJjaGl2ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIHNldEF0dHJp
YnV0ZShhcmNoaXZlQXR0ciwgdmFsdWUpOwogfQpAQCAtMzc1LDcgKzM5NSw3IEBAIFN0cmluZyBI
VE1MT2JqZWN0RWxlbWVudDo6Ym9yZGVyKCkgY29uc3QKICAgICByZXR1cm4gZ2V0QXR0cmlidXRl
KGJvcmRlckF0dHIpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRCb3JkZXIoY29u
c3QgU3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldEJvcmRlcihjb25z
dCBTdHJpbmcmIHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShib3JkZXJBdHRyLCB2YWx1ZSk7
CiB9CkBAIC0zODUsNyArNDA1LDcgQEAgU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50Ojpjb2RlQmFz
ZSgpIGNvbgogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoY29kZWJhc2VBdHRyKTsKIH0KIAotdm9p
ZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZUJhc2UoY29uc3QgU3RyaW5nICZ2YWx1ZSkKK3Zv
aWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldENvZGVCYXNlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7
CiAgICAgc2V0QXR0cmlidXRlKGNvZGViYXNlQXR0ciwgdmFsdWUpOwogfQpAQCAtMzk1LDcgKzQx
NSw3IEBAIFN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6Y29kZVR5cGUoKSBjb24KICAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKGNvZGV0eXBlQXR0cik7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1l
bnQ6OnNldENvZGVUeXBlKGNvbnN0IFN0cmluZyAmdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVt
ZW50OjpzZXRDb2RlVHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0
ZShjb2RldHlwZUF0dHIsIHZhbHVlKTsKIH0KQEAgLTQwNSw3ICs0MjUsNyBAQCBTdHJpbmcgSFRN
TE9iamVjdEVsZW1lbnQ6OmRhdGEoKSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoZGF0
YUF0dHIpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXREYXRhKGNvbnN0IFN0cmlu
ZyAmdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXREYXRhKGNvbnN0IFN0cmluZyYg
dmFsdWUpCiB7CiAgICAgc2V0QXR0cmlidXRlKGRhdGFBdHRyLCB2YWx1ZSk7CiB9CkBAIC00MjAs
MTQgKzQ0MCwxNCBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXREZWNsYXJlKGJvb2wgCiAg
ICAgc2V0QXR0cmlidXRlKGRlY2xhcmVBdHRyLCBkZWNsYXJlID8gIiIgOiAwKTsKIH0KIAotU3Ry
aW5nIEhUTUxPYmplY3RFbGVtZW50Ojpoc3BhY2UoKSBjb25zdAoraW50IEhUTUxPYmplY3RFbGVt
ZW50Ojpoc3BhY2UoKSBjb25zdAogewotICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoaHNwYWNlQXR0
cik7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShoc3BhY2VBdHRyKS50b0ludCgpOwogfQogCi12
b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRIc3BhY2UoY29uc3QgU3RyaW5nICZ2YWx1ZSkKK3Zv
aWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldEhzcGFjZShpbnQgdmFsdWUpCiB7Ci0gICAgc2V0QXR0
cmlidXRlKGhzcGFjZUF0dHIsIHZhbHVlKTsKKyAgICBzZXRBdHRyaWJ1dGUoaHNwYWNlQXR0ciwg
U3RyaW5nOjpudW1iZXIodmFsdWUpKTsKIH0KIAogU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50Ojpz
dGFuZGJ5KCkgY29uc3QKQEAgLTQzNSw3ICs0NTUsNyBAQCBTdHJpbmcgSFRNTE9iamVjdEVsZW1l
bnQ6OnN0YW5kYnkoKSBjb25zCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzdGFuZGJ5QXR0cik7
CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldFN0YW5kYnkoY29uc3QgU3RyaW5nICZ2
YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldFN0YW5kYnkoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUoc3RhbmRieUF0dHIsIHZhbHVlKTsKIH0KQEAgLTQ1
NSw3ICs0NzUsNyBAQCBTdHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6OnR5cGUoKSBjb25zdAogICAg
IHJldHVybiBnZXRBdHRyaWJ1dGUodHlwZUF0dHIpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVt
ZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyAmdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50
OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgc2V0QXR0cmlidXRlKHR5cGVB
dHRyLCB2YWx1ZSk7CiB9CkBAIC00NjUsMTkgKzQ4NSwzMSBAQCBTdHJpbmcgSFRNTE9iamVjdEVs
ZW1lbnQ6OnVzZU1hcCgpIGNvbnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZSh1c2VtYXBBdHRy
KTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0VXNlTWFwKGNvbnN0IFN0cmluZyAm
dmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRVc2VNYXAoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUodXNlbWFwQXR0ciwgdmFsdWUpOwogfQogCi1TdHJp
bmcgSFRNTE9iamVjdEVsZW1lbnQ6OnZzcGFjZSgpIGNvbnN0CitpbnQgSFRNTE9iamVjdEVsZW1l
bnQ6OnZzcGFjZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGdldEF0dHJpYnV0ZSh2c3BhY2VBdHRy
KTsKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHZzcGFjZUF0dHIpLnRvSW50KCk7CiB9CiAKLXZv
aWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldFZzcGFjZShjb25zdCBTdHJpbmcgJnZhbHVlKQordm9p
ZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0VnNwYWNlKGludCB2YWx1ZSkKIHsKLSAgICBzZXRBdHRy
aWJ1dGUodnNwYWNlQXR0ciwgdmFsdWUpOworICAgIHNldEF0dHJpYnV0ZSh2c3BhY2VBdHRyLCBT
dHJpbmc6Om51bWJlcih2YWx1ZSkpOwogfQogCisjaWYgU1ZHX1NVUFBPUlQKK1NWR0RvY3VtZW50
KiBIVE1MT2JqZWN0RWxlbWVudDo6Z2V0U1ZHRG9jdW1lbnQoRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0Cit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGNvbnRlbnREb2N1bWVudCgpOworICAgIGlmIChk
b2MgJiYgZG9jLT5pc1NWR0RvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
VkdEb2N1bWVudCo+KGRvYyk7CisgICAgLy8gU3BlYzogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
L3N0cnVjdC5odG1sI0ludGVyZmFjZUdldFNWR0RvY3VtZW50CisgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBodG1sL0hUTUxP
YmplY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCShy
ZXZpc2lvbiAxNTU1MykKKysrIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxGb3Jt
RWxlbWVudDsKIGNsYXNzIEhUTUxJbWFnZUxvYWRlcjsKK2NsYXNzIFNWR0RvY3VtZW50OwogCiBj
bGFzcyBIVE1MT2JqZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luRWxlbWVudAogewpAQCAt
NTYsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3Vt
ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2gpOworICAgIHZpcnR1YWwg
dm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSk7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVu
Q2hhbmdlZCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSop
IGNvbnN0OwpAQCAtOTQsOCArOTUsOCBAQCBwdWJsaWM6CiAKICAgICBIVE1MRm9ybUVsZW1lbnQq
IGZvcm0oKSBjb25zdDsKICAgICAKLSAgICBTdHJpbmcgaHNwYWNlKCkgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRIc3BhY2UoY29uc3QgU3RyaW5nJik7CisgICAgaW50IGhzcGFjZSgpIGNvbnN0OworICAg
IHZvaWQgc2V0SHNwYWNlKGludCk7CiAKICAgICBTdHJpbmcgc3RhbmRieSgpIGNvbnN0OwogICAg
IHZvaWQgc2V0U3RhbmRieShjb25zdCBTdHJpbmcmKTsKQEAgLTEwOSwxMyArMTEwLDE3IEBAIHB1
YmxpYzoKICAgICBTdHJpbmcgdXNlTWFwKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRVc2VNYXAoY29u
c3QgU3RyaW5nJik7CiAKLSAgICBTdHJpbmcgdnNwYWNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRW
c3BhY2UoY29uc3QgU3RyaW5nJik7CisgICAgaW50IHZzcGFjZSgpIGNvbnN0OworICAgIHZvaWQg
c2V0VnNwYWNlKGludCk7CiAKICAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBt
X2NvbXBsZXRlOyB9CiAgICAgdm9pZCBzZXRDb21wbGV0ZShib29sIGNvbXBsZXRlKTsKICAgICAK
ICAgICBib29sIGlzRG9jTmFtZWRJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9kb2NOYW1lZEl0ZW07
IH0KKwkKKyNpZiBTVkdfU1VQUE9SVAorICAgIFNWR0RvY3VtZW50KiBnZXRTVkdEb2N1bWVudChF
eGNlcHRpb25Db2RlJikgY29uc3Q7CisjZW5kaWYKIAogICAgIERlcHJlY2F0ZWRTdHJpbmcgc2Vy
dmljZVR5cGU7CiAgICAgRGVwcmVjYXRlZFN0cmluZyB1cmw7CkluZGV4OiBrc3ZnMi9zdmcvU1ZH
RG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAkocmV2aXNp
b24gMTU1NTMpCisrKyBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzcsNiArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBT
VkdEb2N1bWVudChTVkdET01JbXBsZW1lbnRhdGlvbiAqaSwgRnJhbWVWaWV3ICp2aWV3KTsKICAg
ICAgICAgdmlydHVhbCB+U1ZHRG9jdW1lbnQoKTsKKyAgICAgICAgCisgICAgICAgIHZpcnR1YWwg
Ym9vbCBpc1NWR0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIFNW
R1NWR0VsZW1lbnQgKnJvb3RFbGVtZW50KCkgY29uc3Q7CiAgICAgICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9704</attachid>
            <date>2006-07-26 17:30:40 -0700</date>
            <delta_ts>2006-07-26 22:01:21 -0700</delta_ts>
            <desc>patch for review -- no autogeneration attempted, just added GetSVGDocument</desc>
            <filename>foo.patch</filename>
            <type>text/plain</type>
            <size>78965</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1NjQyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKK2wyMDA2LTA3LTI2ICBFcmljIFNlaWRlbCAgPGVy
aWNAZXNlaWRlbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBBZGQgdGVzdGNhc2VzIGZvciBnZXRTVkdEb2N1bWVudCgpIGZ1bmN0
aW9uLgorICAgICAgICBBbHNvIHRlc3QgSFRNTE9iamVjdEVsZW1lbnQudnNwYWNlIGFuZCBoc3Bh
Y2UgYXMgbnVtYmVycyAod2hpbGUgSSdtIGF0IGl0KS4KKworICAgICAgICAqIGZhc3QvZG9tL0hU
TUxPYmplY3RFbGVtZW50L3ZzcGFjZS1oc3BhY2UtYXMtbnVtYmVyLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MT2JqZWN0RWxlbWVudC92c3BhY2UtaHNw
YWNlLWFzLW51bWJlci1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxPYmplY3RFbGVtZW50L3ZzcGFjZS1oc3BhY2UtYXMtbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1h
cy1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRzdmdkb2N1bWVu
dC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9nZXRzdmdk
b2N1bWVudC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vZ2V0c3Zn
ZG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2dldHN2
Z2RvY3VtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vcmVzb3VyY2VzL2dl
dHN2Z2RvY3VtZW50LnN2ZzogQWRkZWQuCisKIDIwMDYtMDctMjUgIEp1c3RpbiBHYXJjaWEgIDxq
dXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBhZGVsZQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1h
cy1udW1iZXItZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1hcy1udW1iZXItZXhwZWN0ZWQu
Y2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT2JqZWN0
RWxlbWVudC92c3BhY2UtaHNwYWNlLWFzLW51bWJlci1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSBAQAorMjNkNGZlMjg1MjEyMWFkN2QyMzUxNmVjOWNhNGY4MTEKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
T2JqZWN0RWxlbWVudC92c3BhY2UtaHNwYWNlLWFzLW51bWJlci1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhz
cGFjZS1hcy1udW1iZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1hcy1udW1iZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MzYKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNzgyeDM2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNzgyOiAiVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBIVE1MT2JqZWN0RWxlbWVudC52
c3BhY2UgYW5kIEhUTUxPYmplY3RFbGVtZW50LmhzcGFjZSBhcmUgZXhwb3NlZCBhcyBudW1iZXJz
IGluc3RlYWQgb2YiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDcxOTogInN0
cmluZ3MsIHBlciB0aGUgRE9NIExldmVsIDIgSFRNTCBzcGVjOiBodHRwOi8vd3d3LnczLm9yZy9U
Ui9ET00tTGV2ZWwtMi1IVE1ML2h0bWwuaHRtbCNJRC05ODkzMTc3IgorICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsNTIpIHNpemUgNzg0eDE3MAorICAgICAgICBSZW5kZXJQYXJ0
T2JqZWN0IHtPQkpFQ1R9IGF0ICgyMCwxMCkgc2l6ZSAzMDB4MTUwCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMjIyKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA3NngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDc2OiAiU1VDQ0VT
UyEiCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT2JqZWN0RWxlbWVudC92c3BhY2Ut
aHNwYWNlLWFzLW51bWJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxPYmplY3RFbGVtZW50L3ZzcGFjZS1oc3BhY2UtYXMtbnVtYmVyLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT2JqZWN0RWxlbWVudC92c3BhY2UtaHNw
YWNlLWFzLW51bWJlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACis8cD5UaGlz
IHRlc3QgbWFrZXMgc3VyZSB0aGF0IEhUTUxPYmplY3RFbGVtZW50LnZzcGFjZSBhbmQgSFRNTE9i
amVjdEVsZW1lbnQuaHNwYWNlIGFyZSBleHBvc2VkIGFzIG51bWJlcnMgaW5zdGVhZCBvZiBzdHJp
bmdzLCBwZXIgdGhlIERPTSBMZXZlbCAyIEhUTUwgc3BlYzogaHR0cDovL3d3dy53My5vcmcvVFIv
RE9NLUxldmVsLTItSFRNTC9odG1sLmh0bWwjSUQtOTg5MzE3NzwvcD4KKworPG9iamVjdCBpZD0i
b2JqZWN0IiB2c3BhY2U9IjEwIiBoc3BhY2U9IjIwIj48L29iamVjdD4KKworPGRpdiBpZD0icmVz
dWx0cyI+RkFJTFVSRTwvZGl2PgorCis8c2NyaXB0PgordmFyIG9iamVjdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvYmplY3QiKTsKK3ZhciByZXN1bHRzRGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdHMiKTsKK2lmICh0eXBlb2Yob2JqZWN0LnZzcGFjZSkgIT0gIm51bWJl
ciIpIHsKKyAgcmVzdWx0c0Rpdi5pbm5lclRleHQgKz0gIkZBSUxVUkUgSFRNTE9iamVjdEVsZW1l
bnQudnNwYWNlIGlzIG5vdCBhIG51bWJlciwgcmF0aGVyOiAiICsgdHlwZW9mKG9iamVjdC52c3Bh
Y2UpCit9IGVsc2UgaWYgKHR5cGVvZihvYmplY3QuaHNwYWNlKSAhPSAibnVtYmVyIikgeworICBy
ZXN1bHRzRGl2LmlubmVyVGV4dCArPSAiRkFJTFVSRSBIVE1MT2JqZWN0RWxlbWVudC5oc3BhY2Ug
aXMgbm90IGEgbnVtYmVyLCByYXRoZXI6ICIgKyB0eXBlb2Yob2JqZWN0LmhzcGFjZSkKK30gZWxz
ZSB7CisgIHJlc3VsdHNEaXYuaW5uZXJUZXh0ID0gIlNVQ0NFU1MhIjsKK30KK29iamVjdC5pbm5l
clRleHQgPSByZXN1bHRTdHJpbmc7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2dldHN2Z2RvY3VtZW50LWV4cGVjdGVk
LmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0c3ZnZG9j
dW1lbnQtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL2dldHN2Z2RvY3VtZW50LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxIEBACithNmQ5MzdkN2Y0MjY5ODM4YWI0ZmQ5Y2FlOGIwNDZmYgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0c3ZnZG9jdW1l
bnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0
c3ZnZG9jdW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS9nZXRzdmdkb2N1bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzAgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXpl
IDc4NHgzNgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Njd4MzYK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3Njc6ICJUaGlzIHRlc3RzIHRvIHNl
ZSBpZiBIVE1MRW1iZWRFbGVtZW50LmdldFNWR0RvY3VtZW50KCkgYW5kIEhUTUxPYmplY3RFbGVt
ZW50LmdldFNWR0RvY3VtZW50KCkgd29yay4gWW91IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDE4KSB3aWR0aCAzMDA6ICJzaG91bGQgc2VlIFNVQ0NFU1MgcHJpbnRlZCB0d2ljZSBiZWxvdyB0
aGlzOiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDUyKSBzaXplIDc4NHg1
OAorICAgICAgICBSZW5kZXJQYXJ0T2JqZWN0IHtFTUJFRH0gYXQgKDAsMCkgc2l6ZSA4NXgyMAor
ICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgODV4MjAKKyAgICAgICAgICAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4NXgyMAorICAgICAgICAgICAgICBLQ2FudmFzQ29udGFpbmVyIHtz
dmd9IGF0ICgwLDApIHNpemUgODV4MjAKKyAgICAgICAgICAgICAgICBLQ2FudmFzSXRlbSB7cmVj
dH0gYXQgKDAsMCkgc2l6ZSA4NXgyMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAw
XX1dIFtkYXRhPSJNMC4wMCwwLjAwTDg1LjAwLDAuMDBMODUuMDAsMjAuMDBMMC4wMCwyMC4wMCJd
CisgICAgICAgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDAsMCkgc2l6ZSA4NXgx
OAorICAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzF4
MTgKKyAgICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzE6ICJTVUND
RVNTIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICg4NSwyMCkgc2l6ZSAweDAKKyAgICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMCwyMCkgc2l6ZSAweDE4CisgICAgICAgIFJlbmRlclBhcnRPYmpl
Y3Qge09CSkVDVH0gYXQgKDAsMzgpIHNpemUgODV4MjAKKyAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDg1eDIwCisgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODV4MjAK
KyAgICAgICAgICAgICAgS0NhbnZhc0NvbnRhaW5lciB7c3ZnfSBhdCAoMCwwKSBzaXplIDg1eDIw
CisgICAgICAgICAgICAgICAgS0NhbnZhc0l0ZW0ge3JlY3R9IGF0ICgwLDApIHNpemUgODV4MjAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMEw4
NS4wMCwwLjAwTDg1LjAwLDIwLjAwTDAuMDAsMjAuMDAiXQorICAgICAgICAgICAgICAgIFJlbmRl
clNWR1RleHQge3RleHR9IGF0ICgwLDApIHNpemUgODV4MTgKKyAgICAgICAgICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcxeDE4CisgICAgICAgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcxOiAiU1VDQ0VTUyIKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9nZXRzdmdkb2N1
bWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0c3ZnZG9j
dW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZ2V0c3Zn
ZG9jdW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorPHNjcmlwdD4KK2Z1
bmN0aW9uIGNoYW5nZVRvU3VjY2VzcyhzdmdEb2N1bWVudCkgeworICB2YXIgdGV4dCA9IHN2Z0Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisgIHZhciByZWN0ID0gc3ZnRG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlY3QiKTsKKyAgCisgIC8vIER1ZSB0byBsaW1pdGF0aW9ucyBpbiB0
aGUgY3VycmVudCBTVkcgSlMgQmluZGluZ3MsIHdlJ3JlIGNoYW5naW5nIHRoZSB0ZXh0IGluIHRo
aXMgcm91bmRhYm91dCB3YXk6CisgIHRleHQucmVtb3ZlQ2hpbGQodGV4dC5maXJzdENoaWxkKTsK
KyAgdGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiU1VDQ0VTUyIpKTsK
KyAgCisgIHJlY3Quc3R5bGUuZmlsbCA9ICJncmVlbiI7Cit9CisKK2Z1bmN0aW9uIGRpZExvYWQo
KSB7CisgIHZhciBvYmplY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2JqZWN0Iik7Cisg
IHZhciBlbWJlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbWJlZCIpOworCisgIGNoYW5n
ZVRvU3VjY2VzcyhvYmplY3QuZ2V0U1ZHRG9jdW1lbnQoKSk7CisgIGNoYW5nZVRvU3VjY2Vzcyhl
bWJlZC5nZXRTVkdEb2N1bWVudCgpKTsKK30KKzwvc2NyaXB0PgorCis8Ym9keSBvbmxvYWQ9ImRp
ZExvYWQoKSI+Cis8cD5UaGlzIHRlc3RzIHRvIHNlZSBpZiBIVE1MRW1iZWRFbGVtZW50LmdldFNW
R0RvY3VtZW50KCkgYW5kIEhUTUxPYmplY3RFbGVtZW50LmdldFNWR0RvY3VtZW50KCkgd29yay4g
WW91IHNob3VsZCBzZWUgU1VDQ0VTUyBwcmludGVkIHR3aWNlIGJlbG93IHRoaXM6PC9wPgorCis8
RU1CRUQgaWQ9ImVtYmVkIiBTUkM9InJlc291cmNlcy9nZXRzdmdkb2N1bWVudC5zdmciIFdJRFRI
PSI4NSIgSEVJR0hUPSIyMCIgLz48YnI+PGJyPgorICAKKzxPQkpFQ1QgaWQ9Im9iamVjdCIgREFU
QT0icmVzb3VyY2VzL2dldHN2Z2RvY3VtZW50LnN2ZyIgV0lEVEg9Ijg1IiBIRUlHSFQ9IjIwIj5G
QUlMVVJFIChubyBTVkcgc3VwcG9ydCEpPC9PQkpFQ1Q+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL3Jlc291cmNlcy9nZXRzdmdkb2N1bWVudC5zdmcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvZ2V0c3ZnZG9jdW1lbnQuc3ZnCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9yZXNvdXJjZXMvZ2V0c3ZnZG9j
dW1lbnQuc3ZnCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEu
MCI/PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5r
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAgPHJlY3QgaWQ9InJlY3QiIHg9IjAi
IHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InJlZCIvPgorICA8dGV4dCBp
ZD0idGV4dCIgeD0iNSIgeT0iMTYiPkZBSUxVUkU8L3RleHQ+Cis8L3N2Zz4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2MzkpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDA2LTA3LTIxICBFcmljIFNlaWRlbCAg
PGVyaWNAZXNlaWRlbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQSBzbGlnaHRseSBtb3JlIGhhY2staXNoIHdheSBvZiBlbmFibGluZyBHZXRT
VkdEb2N1bWVudCgpCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyBub3QgdHJ5IHRvIGF1dG9nZW5l
cmF0ZSBhbnl0aGluZywgYnV0IGVuYWJsZXMgdGhlIFNWRyBmdW5jdGlvbmFsaXR5LgorICAgICAg
ICBHZXRTVkdEb2N1bWVudCBzdXBwb3J0IHVuLWJyZWFrcyBodW5kcmVkcywgaWYgbm90IHRob3Vz
YW5kcyBvZiByZWFsLXdvcmxkIFNWR3MuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfZG9t
LmNwcDoKKyAgICAgICAgKEtKUzo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX2h0
bWwuY3BwOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50OjpvYmplY3RHZXR0ZXIpOgorICAg
ICAgICAoS0pTOjpIVE1MRWxlbWVudEZ1bmN0aW9uOjpjYWxsQXNGdW5jdGlvbik6CisgICAgICAg
IChLSlM6OkpTSFRNTEVsZW1lbnQ6Om9iamVjdFNldHRlcik6CisgICAgICAgICogYmluZGluZ3Mv
anMva2pzX2h0bWwuaDoKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6KToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojppc1NWR0RvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVtYmVkRWxlbWVudDo6Y29udGVudERvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbWJlZEVsZW1lbnQ6OmdldFNWR0RvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hU
TUxFbWJlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6Z2V0SW5zdGFuY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojpjb250ZW50RG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzZXRDb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzZXRBcmNoaXZlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxPYmplY3RFbGVtZW50OjpzZXRCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9i
amVjdEVsZW1lbnQ6OnNldENvZGVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RF
bGVtZW50OjpzZXRDb2RlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVu
dDo6c2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6aHNwYWNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpzZXRIc3BhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNldFN0YW5kYnkpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE9iamVjdEVsZW1lbnQ6OnNldFVzZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2Jq
ZWN0RWxlbWVudDo6dnNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50
OjpzZXRWc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmdldFNW
R0RvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50Lmg6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVu
dDo6aXNTVkdEb2N1bWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpmcmFtZVZpZXcpOgorCiAyMDA2LTA3LTI2
ICBNaXR6IFBldHRlbCAgPG9wZW5kYXJ3aW4ub3JnQG1pdHpwZXR0ZWwuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IGFwLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE1NjM5KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE1OTgsMjMgKzE1OTgsNiBAQAogCQlG
QUUwNDE5MDA5NzU5NkM5MDAwNTQwQkUgLyogU1ZHSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBRTA0MThFMDk3NTk2QzkwMDA1NDBC
RSAvKiBTVkdJbWFnZUxvYWRlci5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9u
ICovCiAKLS8qIEJlZ2luIFBCWEJ1aWxkU3R5bGUgc2VjdGlvbiAqLwotCQlCQ0Y0RTUwOTBBNzU2
Njk1MDA5MDUyN0EgLyogRGV2ZWxvcG1lbnQgKi8gPSB7Ci0JCQlpc2EgPSBQQlhCdWlsZFN0eWxl
OwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87Ci0JCQl9
OwotCQkJbmFtZSA9IERldmVsb3BtZW50OwotCQl9OwotCQlCQ0Y0RTUwQTBBNzU2Njk1MDA5MDUy
N0EgLyogRGVwbG95bWVudCAqLyA9IHsKLQkJCWlzYSA9IFBCWEJ1aWxkU3R5bGU7Ci0JCQlidWls
ZFNldHRpbmdzID0gewotCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBZRVM7Ci0JCQl9OwotCQkJbmFt
ZSA9IERlcGxveW1lbnQ7Ci0JCX07Ci0vKiBFbmQgUEJYQnVpbGRTdHlsZSBzZWN0aW9uICovCi0K
IC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCiAJCUREMDQxRkYwMDlE
OUUzMjUwMDEwQUYyQSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhDb250YWluZXJJdGVtUHJveHk7CkBAIC02NDUyLDEyICs2NDM1LDYgQEAKIAkJMDg2N0Q2OTBG
RTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovID0gewogCQkJaXNhID0gUEJYUHJv
amVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlF
RkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAq
LzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQl9OwotCQkJYnVpbGRTdHlsZXMgPSAoCi0JCQkJ
QkNGNEU1MDkwQTc1NjY5NTAwOTA1MjdBIC8qIERldmVsb3BtZW50ICovLAotCQkJCUJDRjRFNTBB
MEE3NTY2OTUwMDkwNTI3QSAvKiBEZXBsb3ltZW50ICovLAotCQkJKTsKIAkJCWhhc1NjYW5uZWRG
b3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19kb20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMva2pzX2RvbS5jcHAJKHJldmlzaW9uIDE1NjM5KQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9ranNfZG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsOSBAQAogI2lu
Y2x1ZGUgImtqc193aW5kb3cuaCIKIAogI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiSlNTVkdE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5j
bHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjZW5kaWYKIApA
QCAtOTQxLDYgKzk0Myw4IEBAIEpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBEb2N1bWVu
dCAKIAogICBpZiAobi0+aXNIVE1MRG9jdW1lbnQoKSkKICAgICByZXQgPSBuZXcgV2ViQ29yZTo6
SlNIVE1MRG9jdW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4obikpOworICBl
bHNlIGlmIChuLT5pc1NWR0RvY3VtZW50KCkpCisgICAgcmV0ID0gbmV3IFdlYkNvcmU6OkpTU1ZH
RG9jdW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQqPihuKSk7CiAgIGVsc2UKICAg
ICByZXQgPSBuZXcgSlNEb2N1bWVudChleGVjLCBuKTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9ranNfaHRtbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNf
aHRtbC5jcHAJKHJldmlzaW9uIDE1NjM5KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRt
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDEwIEBACiAjaW5jbHVkZSAia2pzX3dp
bmRvdy5oIgogI2luY2x1ZGUgPG1hdGguaD4KIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAi
U1ZHRG9jdW1lbnQuaCIKKyNlbmRpZgorCiAjaW5jbHVkZSAia2pzX2h0bWwubHV0LmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTczLDYgKzU3Nyw3IEBAIGNvbnN0IEpTSFRNTEVs
ZW1lbnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwKICAgZGVjbGFyZSAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6T2JqZWN0RGVjbGFyZSAgICAgICAgIERvbnREZWxldGUKICAgaGVpZ2h0ICAgICAg
ICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T2JqZWN0SGVpZ2h0ICAgICAgICAgIERvbnREZWxldGUK
ICAgaHNwYWNlICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T2JqZWN0SHNwYWNlICAgICAg
ICAgIERvbnREZWxldGUKKyAgZ2V0U1ZHRG9jdW1lbnQgIEtKUzo6SlNIVE1MRWxlbWVudDo6T2Jq
ZWN0R2V0U1ZHRG9jdW1lbnQgIERvbnREZWxldGV8RnVuY3Rpb24gMAogICBuYW1lICAgICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3ROYW1lICAgICAgICAgICAgRG9udERlbGV0ZQog
ICBzdGFuZGJ5ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmplY3RTdGFuZGJ5ICAgICAg
ICAgRG9udERlbGV0ZQogICB0YWJJbmRleCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPYmpl
Y3RUYWJJbmRleCAgICAgICAgRG9udERlbGV0ZQpAQCAtNTg0LDYgKzU4OSw3IEBAIGNvbnN0IEpT
SFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwKIEBiZWdpbiBIVE1MRW1iZWRFbGVtZW50
VGFibGUgNgogICBhbGlnbiAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6RW1iZWRBbGlnbiAg
ICAgICAgICAgRG9udERlbGV0ZQogICBoZWlnaHQgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
RW1iZWRIZWlnaHQgICAgICAgICAgRG9udERlbGV0ZQorICBnZXRTVkdEb2N1bWVudCBLSlM6OkpT
SFRNTEVsZW1lbnQ6OkVtYmVkR2V0U1ZHRG9jdW1lbnQgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiAg
IG5hbWUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpFbWJlZE5hbWUgICAgICAgICAgICBE
b250RGVsZXRlCiAgIHNyYyAgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpFbWJlZFNyYyAg
ICAgICAgICAgICBEb250RGVsZXRlCiAgIHR5cGUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpFbWJlZFR5cGUgICAgICAgICAgICBEb250RGVsZXRlCkBAIC04NjIsMTMgKzg2OCwxMyBAQCBK
U1ZhbHVlICpKU0hUTUxFbGVtZW50OjpvYmplY3RHZXR0ZXIoRXhlCiAgICAgICAgIGNhc2UgT2Jq
ZWN0RGF0YTogICAgICAgICAgICByZXR1cm4ganNTdHJpbmcob2JqZWN0LmRhdGEoKSk7CiAgICAg
ICAgIGNhc2UgT2JqZWN0RGVjbGFyZTogICAgICAgICByZXR1cm4ganNCb29sZWFuKG9iamVjdC5k
ZWNsYXJlKCkpOwogICAgICAgICBjYXNlIE9iamVjdEhlaWdodDogICAgICAgICAgcmV0dXJuIGpz
U3RyaW5nKG9iamVjdC5oZWlnaHQoKSk7Ci0gICAgICAgIGNhc2UgT2JqZWN0SHNwYWNlOiAgICAg
ICAgICByZXR1cm4ganNTdHJpbmcob2JqZWN0LmhzcGFjZSgpKTsKKyAgICAgICAgY2FzZSBPYmpl
Y3RIc3BhY2U6ICAgICAgICAgIHJldHVybiBqc051bWJlcihvYmplY3QuaHNwYWNlKCkpOwogICAg
ICAgICBjYXNlIE9iamVjdE5hbWU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKG9iamVjdC5u
YW1lKCkpOwogICAgICAgICBjYXNlIE9iamVjdFN0YW5kYnk6ICAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKG9iamVjdC5zdGFuZGJ5KCkpOwogICAgICAgICBjYXNlIE9iamVjdFRhYkluZGV4OiAgICAg
ICAgcmV0dXJuIGpzTnVtYmVyKG9iamVjdC50YWJJbmRleCgpKTsKICAgICAgICAgY2FzZSBPYmpl
Y3RUeXBlOiAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QudHlwZSgpKTsKICAgICAg
ICAgY2FzZSBPYmplY3RVc2VNYXA6ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3QudXNl
TWFwKCkpOwotICAgICAgICBjYXNlIE9iamVjdFZzcGFjZTogICAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKG9iamVjdC52c3BhY2UoKSk7CisgICAgICAgIGNhc2UgT2JqZWN0VnNwYWNlOiAgICAgICAg
ICByZXR1cm4ganNOdW1iZXIob2JqZWN0LnZzcGFjZSgpKTsKICAgICAgICAgY2FzZSBPYmplY3RX
aWR0aDogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvYmplY3Qud2lkdGgoKSk7CiAgICAgfQog
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTI2Nyw2ICsxMjczLDE3IEBAIEpTVmFsdWUg
KkhUTUxFbGVtZW50RnVuY3Rpb246OmNhbGxBc0Z1bmMKICAgICAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogICAgICAgICB9CiAgICAgfQorI2lmIFNWR19TVVBQT1JUCisgIGVsc2UgaWYg
KGVsZW1lbnQuaGFzTG9jYWxOYW1lKG9iamVjdFRhZykpIHsKKyAgICAgIEhUTUxPYmplY3RFbGVt
ZW50JiBvYmplY3QgPSBzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCY+KGVsZW1lbnQpOwor
ICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6Ok9iamVjdEdldFNWR0RvY3VtZW50KQorICAg
ICAgICAgIHJldHVybiBjaGVja05vZGVTZWN1cml0eShleGVjLCBvYmplY3QuZ2V0U1ZHRG9jdW1l
bnQoZXhjZXB0aW9uKSkgPyB0b0pTKGV4ZWMsIG9iamVjdC5nZXRTVkdEb2N1bWVudChleGNlcHRp
b24pKSA6IGpzVW5kZWZpbmVkKCk7CisgIH0gZWxzZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUo
ZW1iZWRUYWcpKSB7CisgICAgICBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCA9IHN0YXRpY19jYXN0
PEhUTUxFbWJlZEVsZW1lbnQmPihlbGVtZW50KTsKKyAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVt
ZW50OjpFbWJlZEdldFNWR0RvY3VtZW50KQorICAgICAgICAgIHJldHVybiBjaGVja05vZGVTZWN1
cml0eShleGVjLCBlbWJlZC5nZXRTVkdEb2N1bWVudChleGNlcHRpb24pKSA/IHRvSlMoZXhlYywg
ZW1iZWQuZ2V0U1ZHRG9jdW1lbnQoZXhjZXB0aW9uKSkgOiBqc1VuZGVmaW5lZCgpOworICB9Cisj
ZW5kaWYKIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQpAQCAtMTM0NSwxMyArMTM2Miwx
MyBAQCB2b2lkIEpTSFRNTEVsZW1lbnQ6Om9iamVjdFNldHRlcihFeGVjU3RhCiAgICAgICAgIGNh
c2UgT2JqZWN0RGF0YTogICAgICAgICAgICB7IG9iamVjdC5zZXREYXRhKHN0cik7IHJldHVybjsg
fQogICAgICAgICBjYXNlIE9iamVjdERlY2xhcmU6ICAgICAgICAgeyBvYmplY3Quc2V0RGVjbGFy
ZSh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9CiAgICAgICAgIGNhc2UgT2JqZWN0
SGVpZ2h0OiAgICAgICAgICB7IG9iamVjdC5zZXRIZWlnaHQoc3RyKTsgcmV0dXJuOyB9Ci0gICAg
ICAgIGNhc2UgT2JqZWN0SHNwYWNlOiAgICAgICAgICB7IG9iamVjdC5zZXRIc3BhY2Uoc3RyKTsg
cmV0dXJuOyB9CisgICAgICAgIGNhc2UgT2JqZWN0SHNwYWNlOiAgICAgICAgICB7IG9iamVjdC5z
ZXRIc3BhY2UodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KICAgICAgICAgY2FzZSBP
YmplY3ROYW1lOiAgICAgICAgICAgIHsgb2JqZWN0LnNldE5hbWUoc3RyKTsgcmV0dXJuOyB9CiAg
ICAgICAgIGNhc2UgT2JqZWN0U3RhbmRieTogICAgICAgICB7IG9iamVjdC5zZXRTdGFuZGJ5KHN0
cik7IHJldHVybjsgfQogICAgICAgICBjYXNlIE9iamVjdFRhYkluZGV4OiAgICAgICAgeyBvYmpl
Y3Quc2V0VGFiSW5kZXgodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KICAgICAgICAg
Y2FzZSBPYmplY3RUeXBlOiAgICAgICAgICAgIHsgb2JqZWN0LnNldFR5cGUoc3RyKTsgcmV0dXJu
OyB9CiAgICAgICAgIGNhc2UgT2JqZWN0VXNlTWFwOiAgICAgICAgICB7IG9iamVjdC5zZXRVc2VN
YXAoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT2JqZWN0VnNwYWNlOiAgICAgICAgICB7
IG9iamVjdC5zZXRWc3BhY2Uoc3RyKTsgcmV0dXJuOyB9CisgICAgICAgIGNhc2UgT2JqZWN0VnNw
YWNlOiAgICAgICAgICB7IG9iamVjdC5zZXRWc3BhY2UodmFsdWUtPnRvSW50MzIoZXhlYykpOyBy
ZXR1cm47IH0KICAgICAgICAgY2FzZSBPYmplY3RXaWR0aDogICAgICAgICAgIHsgb2JqZWN0LnNl
dFdpZHRoKHN0cik7IHJldHVybjsgfQogICAgIH0KIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMva2pzX2h0bWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19odG1s
LmgJKHJldmlzaW9uIDE1NjM5KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjksOCArMTI5LDggQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAg
ICAgIE9iamVjdEhzcGFjZSwgT2JqZWN0SGVpZ2h0LCBPYmplY3RBbGlnbiwKICAgICAgICAgICAg
T2JqZWN0Qm9yZGVyLCBPYmplY3RDb2RlLCBPYmplY3RUeXBlLCBPYmplY3RWc3BhY2UsIE9iamVj
dEFyY2hpdmUsCiAgICAgICAgICAgIE9iamVjdERlY2xhcmUsIE9iamVjdEZvcm0sIE9iamVjdENv
ZGVCYXNlLCBPYmplY3RDb2RlVHlwZSwgT2JqZWN0RGF0YSwKLSAgICAgICAgICAgT2JqZWN0TmFt
ZSwgT2JqZWN0U3RhbmRieSwgT2JqZWN0VGFiSW5kZXgsIE9iamVjdFVzZU1hcCwgT2JqZWN0V2lk
dGgsIE9iamVjdENvbnRlbnREb2N1bWVudCwKLSAgICAgICAgICAgRW1iZWRBbGlnbiwgRW1iZWRI
ZWlnaHQsIEVtYmVkTmFtZSwgRW1iZWRTcmMsIEVtYmVkVHlwZSwgRW1iZWRXaWR0aCwKKyAgICAg
ICAgICAgT2JqZWN0TmFtZSwgT2JqZWN0U3RhbmRieSwgT2JqZWN0VGFiSW5kZXgsIE9iamVjdFVz
ZU1hcCwgT2JqZWN0V2lkdGgsIE9iamVjdENvbnRlbnREb2N1bWVudCwgT2JqZWN0R2V0U1ZHRG9j
dW1lbnQsCisgICAgICAgICAgIEVtYmVkQWxpZ24sIEVtYmVkSGVpZ2h0LCBFbWJlZE5hbWUsIEVt
YmVkU3JjLCBFbWJlZFR5cGUsIEVtYmVkV2lkdGgsIEVtYmVkR2V0U1ZHRG9jdW1lbnQsCiAgICAg
ICAgICAgIFRhYmxlU3VtbWFyeSwgVGFibGVUQm9kaWVzLCBUYWJsZVRIZWFkLCBUYWJsZUNlbGxQ
YWRkaW5nLAogICAgICAgICAgICBUYWJsZURlbGV0ZUNhcHRpb24sIFRhYmxlQ3JlYXRlQ2FwdGlv
biwgVGFibGVDYXB0aW9uLCBUYWJsZVdpZHRoLAogICAgICAgICAgICBUYWJsZUNyZWF0ZVRGb290
LCBUYWJsZUFsaWduLCBUYWJsZVRGb290LCBUYWJsZURlbGV0ZVJvdywKSW5kZXg6IFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2
aXNpb24gMTU2MzkpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjIsNiArMjIyLDcgQEAgcHVibGljOgogICAgIC8vIE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0
IG9mIERPTSkKICAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdEb2N1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGx1Z2luRG9jdW1lbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIAogICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0
b3IoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlU2VsZWN0b3I7IH0KSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MRW1iZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjM5KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSwxMSBAQAogI2luY2x1ZGUg
ImNzc2hlbHBlci5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnRPYmplY3QuaCIKIAorI2lmIFNWR19T
VVBQT1JUCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50
LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwpAQCAtMjA1LDQgKzIxMCwzNiBAQCB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OnNldFR5
cGUoY29uc3QgU3RyCiAgICAgc2V0QXR0cmlidXRlKHR5cGVBdHRyLCB2YWx1ZSk7CiB9CiAKKyNp
ZiBTVkdfU1VQUE9SVAorRG9jdW1lbnQqIEhUTUxFbWJlZEVsZW1lbnQ6OmNvbnRlbnREb2N1bWVu
dCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFRoZSBmcmFtZSBsb2FkaW5nIGNvZGUgc2hvdWxk
IGJlIG1vdmVkIG91dCBvZiB0aGUgcmVuZGVyIHRyZWUKKyAgICAvLyBhbmQgaW50byB0aGUgRE9N
LiAgT25jZSB0aGF0IGhhcHBlbnMsIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGxvb2sgbW9yZSBsaWtl
CisgICAgLy8gSFRNTEZyYW1lRWxlbWVudDo6Y29udGVudERvY3VtZW50KCkgYW5kIG5vdCBkZXBl
bmQgb24gdGhlIHJlbmRlcmVyLgorICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gcmVuZGVyZXIo
KTsKKyAgICBpZiAob2JqZWN0ICYmIG9iamVjdC0+aXNXaWRnZXQoKSkgeworICAgICAgICBSZW5k
ZXJXaWRnZXQqIHJlbmRlcldpZGdldCA9IHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG9iamVj
dCk7CisgICAgICAgIGlmIChyZW5kZXJXaWRnZXQpIHsKKyAgICAgICAgICAgIFdpZGdldCogd2lk
Z2V0ID0gcmVuZGVyV2lkZ2V0LT53aWRnZXQoKTsKKyAgICAgICAgICAgIGlmICh3aWRnZXQgJiYg
d2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7CisgICAgICAgICAgICAgICAgRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpOworICAgICAgICAgICAgICAg
IGlmIChmcmFtZVZpZXctPmZyYW1lKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmcmFt
ZVZpZXctPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIDA7Cit9CisKK1NWR0RvY3VtZW50KiBIVE1MRW1iZWRFbGVtZW50Ojpn
ZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBEb2N1bWVudCog
ZG9jID0gY29udGVudERvY3VtZW50KCk7CisgICAgaWYgKGRvYyAmJiBkb2MtPmlzU1ZHRG9jdW1l
bnQoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKTsKKyAg
ICAvLyBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvc3RydWN0Lmh0bWwjSW50ZXJmYWNl
R2V0U1ZHRG9jdW1lbnQKKyAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOworICAgIHJldHVybiAw
OworfQorI2VuZGlmCisKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAkocmV2aXNpb24g
MTU2MzkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw2ICszNSw4IEBAIG5hbWVzcGFjZSBLSlMgeyBuYW1lc3BhY2UgQmluZGluZ3MgeyBj
bGEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTVkdEb2N1bWVudDsKKwogY2xhc3Mg
SFRNTEVtYmVkRWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luRWxlbWVudAogewogcHVibGljOgpA
QCAtNjQsNiArNjYsMTEgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCisjaWYgU1ZHX1NVUFBPUlQKKyAg
ICBEb2N1bWVudCogY29udGVudERvY3VtZW50KCkgY29uc3Q7CisgICAgU1ZHRG9jdW1lbnQqIGdl
dFNWR0RvY3VtZW50KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyNlbmRpZgogCiAgICAgRGVwcmVj
YXRlZFN0cmluZyB1cmw7CiAgICAgRGVwcmVjYXRlZFN0cmluZyBwbHVnaW5QYWdlOwpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYzOSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcg
QEAKICNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgpAQCAt
MzcsMTkgKzM4LDIzIEBACiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImNzc2hlbHBlci5o
IgogCisjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7CiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBIVE1MT2JqZWN0RWxlbWVudDo6SFRNTE9iamVjdEVs
ZW1lbnQoRG9jdW1lbnQgKmRvYykgCi06IEhUTUxQbHVnSW5FbGVtZW50KG9iamVjdFRhZywgZG9j
KQotLCBtX2ltYWdlTG9hZGVyKDApCisgICAgOiBIVE1MUGx1Z0luRWxlbWVudChvYmplY3RUYWcs
IGRvYykKKyAgICAsIG5lZWRXaWRnZXRVcGRhdGUoZmFsc2UpCisgICAgLCBtX3VzZUZhbGxiYWNr
Q29udGVudChmYWxzZSkKKyAgICAsIG1faW1hZ2VMb2FkZXIoMCkKKyAgICAsIG1fY29tcGxldGUo
ZmFsc2UpCisgICAgLCBtX2RvY05hbWVkSXRlbSh0cnVlKQogewotICAgIG5lZWRXaWRnZXRVcGRh
dGUgPSBmYWxzZTsKLSAgICBtX3VzZUZhbGxiYWNrQ29udGVudCA9IGZhbHNlOwotICAgIG1fY29t
cGxldGUgPSBmYWxzZTsKLSAgICBtX2RvY05hbWVkSXRlbSA9IHRydWU7CiB9CiAKIEhUTUxPYmpl
Y3RFbGVtZW50Ojp+SFRNTE9iamVjdEVsZW1lbnQoKQpAQCAtNzIsNyArNzcsNyBAQCBLSlM6OkJp
bmRpbmdzOjpJbnN0YW5jZSAqSFRNTE9iamVjdEVsZW1lCiAgICAgaWYgKG1faW5zdGFuY2UpCiAg
ICAgICAgIHJldHVybiBtX2luc3RhbmNlLmdldCgpOwogCi0gICAgaWYgKFJlbmRlck9iamVjdCAq
ciA9IHJlbmRlcmVyKCkpIHsKKyAgICBpZiAoUmVuZGVyT2JqZWN0KiByID0gcmVuZGVyZXIoKSkg
ewogICAgICAgICBpZiAoci0+aXNXaWRnZXQoKSkgewogICAgICAgICAgICAgaWYgKFdpZGdldCog
d2lkZ2V0ID0gc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4ociktPndpZGdldCgpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gQ2FsbCBpbnRvIHRoZSBmcmFtZSAoYW5kIG92ZXIgdGhlIGJyaWRnZSkg
dG8gcHVsbCB0aGUgQmluZGluZ3M6Okluc3RhbmNlCkBAIC0xMDUsOSArMTEwLDkgQEAgdm9pZCBI
VE1MT2JqZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaQogICAgIGludCBwb3M7CiAgICAgaWYg
KGF0dHItPm5hbWUoKSA9PSB0eXBlQXR0cikgewogICAgICAgICBzZXJ2aWNlVHlwZSA9IHZhbC5k
ZXByZWNhdGVkU3RyaW5nKCkubG93ZXIoKTsKLSAgICAgICAgcG9zID0gc2VydmljZVR5cGUuZmlu
ZCggIjsiICk7Ci0gICAgICAgIGlmICggcG9zIT0tMSApCi0gICAgICAgICAgc2VydmljZVR5cGUg
PSBzZXJ2aWNlVHlwZS5sZWZ0KCBwb3MgKTsKKyAgICAgICAgcG9zID0gc2VydmljZVR5cGUuZmlu
ZCgiOyIpOworICAgICAgICBpZiAocG9zICE9IC0xKQorICAgICAgICAgIHNlcnZpY2VUeXBlID0g
c2VydmljZVR5cGUubGVmdChwb3MpOwogICAgICAgICBpZiAocmVuZGVyZXIoKSkKICAgICAgICAg
ICBuZWVkV2lkZ2V0VXBkYXRlID0gdHJ1ZTsKICAgICAgICAgaWYgKCFpc0ltYWdlVHlwZSgpICYm
IG1faW1hZ2VMb2FkZXIpIHsKQEAgLTE1NSwyMyArMTYwLDM4IEBAIHZvaWQgSFRNTE9iamVjdEVs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmkKIAogRG9jdW1lbnQqIEhUTUxPYmplY3RFbGVtZW50Ojpj
b250ZW50RG9jdW1lbnQoKSBjb25zdAogewotICAgIC8vICMjIworICAgIC8vIEZJWE1FOiBUaGUg
ZnJhbWUgbG9hZGluZyBjb2RlIHNob3VsZCBiZSBtb3ZlZCBvdXQgb2YgdGhlIHJlbmRlciB0cmVl
CisgICAgLy8gYW5kIGludG8gdGhlIERPTS4gIE9uY2UgdGhhdCBoYXBwZW5zLCB0aGlzIGZ1bmN0
aW9uIHNob3VsZCBsb29rIG1vcmUgbGlrZQorICAgIC8vIEhUTUxGcmFtZUVsZW1lbnQ6OmNvbnRl
bnREb2N1bWVudCgpIGFuZCBub3QgZGVwZW5kIG9uIHRoZSByZW5kZXJlci4KKyAgICBSZW5kZXJP
YmplY3QqIG9iamVjdCA9IHJlbmRlcmVyKCk7CisgICAgaWYgKG9iamVjdCAmJiBvYmplY3QtPmlz
V2lkZ2V0KCkpIHsKKyAgICAgICAgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQgPSBzdGF0aWNf
Y2FzdDxSZW5kZXJXaWRnZXQqPihvYmplY3QpOworICAgICAgICBpZiAocmVuZGVyV2lkZ2V0KSB7
CisgICAgICAgICAgICBXaWRnZXQqIHdpZGdldCA9IHJlbmRlcldpZGdldC0+d2lkZ2V0KCk7Cisg
ICAgICAgICAgICBpZiAod2lkZ2V0ICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkgeworICAgICAg
ICAgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
d2lkZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoZnJhbWVWaWV3LT5mcmFtZSgpKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZnJhbWVWaWV3LT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogICAgIHJldHVybiAwOwogfQogCi1ib29sIEhU
TUxPYmplY3RFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlICpzdHlsZSkKK2Jv
b2wgSFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxl
KQogewogICAgIGlmIChtX3VzZUZhbGxiYWNrQ29udGVudCB8fCBpc0ltYWdlVHlwZSgpKQogICAg
ICAgICByZXR1cm4gSFRNTFBsdWdJbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwog
Ci0gICAgRnJhbWUgKmZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICAvLyBGSVhNRTog
VGhpcyBjaGVjayBpcyBXUk9ORy4gIFdlIHNob3VsZCBjaGVjayB0aGUgY29udGVudCBiZWZvcmUg
ZGlzYWJsaW5nLCBvciBkbyBzbyBhdCBhIGxhdGVyIHN0YWdlLgorICAgIEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50KCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnBsdWdpbnNF
bmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotUmVuZGVyT2JqZWN0ICpIVE1MT2JqZWN0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEgKmFyZW5hLCBSZW5kZXJTdHlsZSAqc3R5bGUpCitSZW5kZXJPYmplY3QgKkhUTUxP
YmplY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlKiBzdHlsZSkKIHsKICAgICBpZiAobV91c2VGYWxsYmFja0NvbnRlbnQpCiAgICAgICAgIHJl
dHVybiBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CkBAIC0zNTUsNyAr
Mzc1LDcgQEAgU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50Ojpjb2RlKCkgY29uc3QKICAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKGNvZGVBdHRyKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6
c2V0Q29kZShjb25zdCBTdHJpbmcgJnZhbHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0
Q29kZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShjb2RlQXR0ciwg
dmFsdWUpOwogfQpAQCAtMzY1LDcgKzM4NSw3IEBAIFN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6
YXJjaGl2ZSgpIGNvbnMKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyY2hpdmVBdHRyKTsKIH0K
IAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0QXJjaGl2ZShjb25zdCBTdHJpbmcgJnZhbHVl
KQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0QXJjaGl2ZShjb25zdCBTdHJpbmcmIHZhbHVl
KQogewogICAgIHNldEF0dHJpYnV0ZShhcmNoaXZlQXR0ciwgdmFsdWUpOwogfQpAQCAtMzc1LDcg
KzM5NSw3IEBAIFN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6Ym9yZGVyKCkgY29uc3QKICAgICBy
ZXR1cm4gZ2V0QXR0cmlidXRlKGJvcmRlckF0dHIpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVt
ZW50OjpzZXRCb3JkZXIoY29uc3QgU3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1l
bnQ6OnNldEJvcmRlcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShi
b3JkZXJBdHRyLCB2YWx1ZSk7CiB9CkBAIC0zODUsNyArNDA1LDcgQEAgU3RyaW5nIEhUTUxPYmpl
Y3RFbGVtZW50Ojpjb2RlQmFzZSgpIGNvbgogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoY29kZWJh
c2VBdHRyKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0Q29kZUJhc2UoY29uc3Qg
U3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldENvZGVCYXNlKGNvbnN0
IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgc2V0QXR0cmlidXRlKGNvZGViYXNlQXR0ciwgdmFsdWUp
OwogfQpAQCAtMzk1LDcgKzQxNSw3IEBAIFN0cmluZyBIVE1MT2JqZWN0RWxlbWVudDo6Y29kZVR5
cGUoKSBjb24KICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGNvZGV0eXBlQXR0cik7CiB9CiAKLXZv
aWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldENvZGVUeXBlKGNvbnN0IFN0cmluZyAmdmFsdWUpCit2
b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRDb2RlVHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQog
ewogICAgIHNldEF0dHJpYnV0ZShjb2RldHlwZUF0dHIsIHZhbHVlKTsKIH0KQEAgLTQwNSw3ICs0
MjUsNyBAQCBTdHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6OmRhdGEoKSBjb25zdAogICAgIHJldHVy
biBnZXRBdHRyaWJ1dGUoZGF0YUF0dHIpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVtZW50Ojpz
ZXREYXRhKGNvbnN0IFN0cmluZyAmdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRE
YXRhKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgc2V0QXR0cmlidXRlKGRhdGFBdHRyLCB2
YWx1ZSk7CiB9CkBAIC00MjAsMTQgKzQ0MCwxNCBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50Ojpz
ZXREZWNsYXJlKGJvb2wgCiAgICAgc2V0QXR0cmlidXRlKGRlY2xhcmVBdHRyLCBkZWNsYXJlID8g
IiIgOiAwKTsKIH0KIAotU3RyaW5nIEhUTUxPYmplY3RFbGVtZW50Ojpoc3BhY2UoKSBjb25zdAor
aW50IEhUTUxPYmplY3RFbGVtZW50Ojpoc3BhY2UoKSBjb25zdAogewotICAgIHJldHVybiBnZXRB
dHRyaWJ1dGUoaHNwYWNlQXR0cik7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShoc3BhY2VBdHRy
KS50b0ludCgpOwogfQogCi12b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRIc3BhY2UoY29uc3Qg
U3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldEhzcGFjZShpbnQgdmFs
dWUpCiB7Ci0gICAgc2V0QXR0cmlidXRlKGhzcGFjZUF0dHIsIHZhbHVlKTsKKyAgICBzZXRBdHRy
aWJ1dGUoaHNwYWNlQXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKIH0KIAogU3RyaW5nIEhU
TUxPYmplY3RFbGVtZW50OjpzdGFuZGJ5KCkgY29uc3QKQEAgLTQzNSw3ICs0NTUsNyBAQCBTdHJp
bmcgSFRNTE9iamVjdEVsZW1lbnQ6OnN0YW5kYnkoKSBjb25zCiAgICAgcmV0dXJuIGdldEF0dHJp
YnV0ZShzdGFuZGJ5QXR0cik7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldFN0YW5k
YnkoY29uc3QgU3RyaW5nICZ2YWx1ZSkKK3ZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldFN0YW5k
YnkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUoc3RhbmRieUF0dHIs
IHZhbHVlKTsKIH0KQEAgLTQ1NSw3ICs0NzUsNyBAQCBTdHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6
OnR5cGUoKSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUodHlwZUF0dHIpOwogfQogCi12
b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyAmdmFsdWUpCit2b2lk
IEhUTUxPYmplY3RFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAg
c2V0QXR0cmlidXRlKHR5cGVBdHRyLCB2YWx1ZSk7CiB9CkBAIC00NjUsMTkgKzQ4NSwzMSBAQCBT
dHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6OnVzZU1hcCgpIGNvbnN0CiAgICAgcmV0dXJuIGdldEF0
dHJpYnV0ZSh1c2VtYXBBdHRyKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0VXNl
TWFwKGNvbnN0IFN0cmluZyAmdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpzZXRVc2VN
YXAoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUodXNlbWFwQXR0ciwg
dmFsdWUpOwogfQogCi1TdHJpbmcgSFRNTE9iamVjdEVsZW1lbnQ6OnZzcGFjZSgpIGNvbnN0Citp
bnQgSFRNTE9iamVjdEVsZW1lbnQ6OnZzcGFjZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGdldEF0
dHJpYnV0ZSh2c3BhY2VBdHRyKTsKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlKHZzcGFjZUF0dHIp
LnRvSW50KCk7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnNldFZzcGFjZShjb25zdCBT
dHJpbmcgJnZhbHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6c2V0VnNwYWNlKGludCB2YWx1
ZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUodnNwYWNlQXR0ciwgdmFsdWUpOworICAgIHNldEF0dHJp
YnV0ZSh2c3BhY2VBdHRyLCBTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwogfQogCisjaWYgU1ZHX1NV
UFBPUlQKK1NWR0RvY3VtZW50KiBIVE1MT2JqZWN0RWxlbWVudDo6Z2V0U1ZHRG9jdW1lbnQoRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGNvbnRlbnREb2N1
bWVudCgpOworICAgIGlmIChkb2MgJiYgZG9jLT5pc1NWR0RvY3VtZW50KCkpCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxTVkdEb2N1bWVudCo+KGRvYyk7CisgICAgLy8gU3BlYzogaHR0cDov
L3d3dy53My5vcmcvVFIvU1ZHL3N0cnVjdC5odG1sI0ludGVyZmFjZUdldFNWR0RvY3VtZW50Cisg
ICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiB9
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTU2MzkpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKIGNsYXNz
IEhUTUxJbWFnZUxvYWRlcjsKK2NsYXNzIFNWR0RvY3VtZW50OwogCiBjbGFzcyBIVE1MT2JqZWN0
RWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luRWxlbWVudAogewpAQCAtNTYsNyArNTcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2gpOworICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSk7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpOwogCiAg
ICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwpAQCAtOTQs
OCArOTUsOCBAQCBwdWJsaWM6CiAKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdDsK
ICAgICAKLSAgICBTdHJpbmcgaHNwYWNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRIc3BhY2UoY29u
c3QgU3RyaW5nJik7CisgICAgaW50IGhzcGFjZSgpIGNvbnN0OworICAgIHZvaWQgc2V0SHNwYWNl
KGludCk7CiAKICAgICBTdHJpbmcgc3RhbmRieSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3RhbmRi
eShjb25zdCBTdHJpbmcmKTsKQEAgLTEwOSwxMyArMTEwLDE3IEBAIHB1YmxpYzoKICAgICBTdHJp
bmcgdXNlTWFwKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRVc2VNYXAoY29uc3QgU3RyaW5nJik7CiAK
LSAgICBTdHJpbmcgdnNwYWNlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWc3BhY2UoY29uc3QgU3Ry
aW5nJik7CisgICAgaW50IHZzcGFjZSgpIGNvbnN0OworICAgIHZvaWQgc2V0VnNwYWNlKGludCk7
CiAKICAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2NvbXBsZXRlOyB9CiAg
ICAgdm9pZCBzZXRDb21wbGV0ZShib29sIGNvbXBsZXRlKTsKICAgICAKICAgICBib29sIGlzRG9j
TmFtZWRJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9kb2NOYW1lZEl0ZW07IH0KKwkKKyNpZiBTVkdf
U1VQUE9SVAorICAgIFNWR0RvY3VtZW50KiBnZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CisjZW5kaWYKIAogICAgIERlcHJlY2F0ZWRTdHJpbmcgc2VydmljZVR5cGU7CiAgICAg
RGVwcmVjYXRlZFN0cmluZyB1cmw7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmgJKHJldmlz
aW9uIDE1NjM5KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNiArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgog
ICAgICAgICBTVkdEb2N1bWVudChTVkdET01JbXBsZW1lbnRhdGlvbiAqaSwgRnJhbWVWaWV3ICp2
aWV3KTsKICAgICAgICAgdmlydHVhbCB+U1ZHRG9jdW1lbnQoKTsKKyAgICAgICAgCisgICAgICAg
IHZpcnR1YWwgYm9vbCBpc1NWR0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAg
ICAgICAgIFNWR1NWR0VsZW1lbnQgKnJvb3RFbGVtZW50KCkgY29uc3Q7CiAgICAgICAgIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE9iamVjdEVsZW1lbnQvdnNwYWNlLWhzcGFjZS1h
cy1udW1iZXItZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPYmpl
Y3RFbGVtZW50L3ZzcGFjZS1oc3BhY2UtYXMtbnVtYmVyLWV4cGVjdGVkLnBuZwpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Ck5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJP
UncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQWdBRWxFUVZSNG5PemRl
WnpQOWY3Ly8vdDc3SVU0Clk3SWt1eG9reXhBUkhZbXNKUzFEZTByakt6bFJSNnRXNXNUSmtzcFNV
U0lmMnpuS0ZwbElLa3RDaDRNelNBN0syR01hc3o5K2Yvak4KNjh4NzVyM09qSmZVN1hxNXVOVHIv
ZHFlcitmcitYeStYL2Q1dmQ3dnQ4Zk1UQUFBQUFEZ2dvanpYUUFBQUFBQWZ4d0VFQUFBQUFDdQpJ
WUFBQUFBQWNBMEJCQUFBQUlCckNDQUFBQUFBWEVNQUFRQUFBT0FhQWdnQUFBQUExeEJBQUFBQUFM
aUdBQUlBQUFEQU5VVWFRSktUCms3Vi8vMzYvODQ4ZE82WmR1M1lWNVM1L2s4NmNPYU1mZi96eGZC
ZkRGY0hPK1I5ZFJrYUd0bS9mcnFOSGovcGRKams1V1FjUEhneTQKblkwYk55b3pNN09vaXhlU3RM
UTBmZlBOTitkbDN5aThyS3dzN2R5NTgzd1g0NXlpbjUwL3ZBZjhQdjBleDQxUXhvQno0YmQrN1Z0
VQo1L3J3NGNOYXVYS2xqaDgvSHRMeVFRTklqeDQ5VkxGaVJYWHAwa1YzM25tbmloVXJwdHExYSt2
MjIyL1hkZGRkcDJMRml1bkREei9VCnJGbXpWTGx5WmMyWU1jUHZ0bDU0NFFYMTZ0VXI5S081QU0y
Wk0wZlZxbFhUMkxGanozZFJ6cmxRem5sQkxWNjhXTTJiTjVmSDQxSHIKMXEyMWZQbHlTV2NiK0ZO
UFBTV1B4Nk9JaUFpOSt1cXJPblhxVk1qdGRPSENoV3JidHEwOEhvOGVlZVFSdi9zZk9IQ2dQQjZQ
R2pacwpxSG56NW1udTNMbHEwS0NCUEI2UE9uVG9vSVNFaElEbDM3ZHZuM3IyN0tuNzdydFBxMWF0
MHRpeFk5V3laVXQ5OU5GSFhzdE5tVEpGCmtaR1JtamR2bnQ5dDdkbXpSeTFidHRUbm4zOGVSZzBH
bHZ0NGJyamhCdlh2MzE4UFAveXc3cnJyTGwxNTVaVzY1WlpiSkVucjE2OVgKaXhZdDFMdDM3eUxi
Tjl6ejdiZmZxbW5UcG43Yk92M3NmK2huNFR1WDd3RTRmNEtOR3hlaVVNYUFjK1czZk8xYlZPZjZu
WGZlMGV6WgpzN1Y2OVdvMWF0UklhV2xwd1ZleUlEcDM3bXcvL1BDRE0xMjZkR2w3NElFSG5Pa3hZ
OGJZbENsVHpNeXNRWU1HTm5Ma1NML2JPbnIwCnFDVW1KZ2JiWlQ2cHFhbTJjdVhLc05jcjZtMkVx
bTNidHZiWVk0KzVzaSszNWEzSFlPYzhuRzNsOWM0Nzc1Z2ttelZyVnI1NWxTcFYKc29ZTkd6clQ0
YlRUZWZQbW1jZmpzZEtsUzl1UkkwZnliZnVYWDM2eHl5Njd6Q1RaYTYrOTVyd2VIeDl2a216NTh1
VUJqMnZidG0xVwp0bXhaZS9QTk43MWUzNzkvdjlXcVZjdUdEQm5pOVhybHlwVnQzTGh4QWJlNVlj
TUd5OGpJQ0xoTU1IbnJPK2Q0MXE1ZDY3WGN5Wk1uCkxUWTIxcGwrL2ZYWHJYTGx5b1hhOTduZ1pw
KytrQTBhTk1odXVPRUd2L1BwWi85RFA4c3ZXRDhyekhzQWZydUNqUnNYb2xER2dIT2gKb05lK2Va
MnI5N3pDbnV2azVHUzcrT0tMTFNzcnk4ek12djc2NjVEV0Mzb0haT2pRb2FwZHU3YmYrWEZ4Y1dy
VXFKRWtxVVNKRXZKNApQSDZYall5TVZQMzY5WDJGSUwvclpHUms2TjU3NzlXYU5XdUNGZFh2Tmd1
NmpWRDR1bDFmcWxTcGdQVVFpa0IxVXBEbGlvS3ZlZ3gyCnpuUGtyYWRRemttRkNoVzgvcHQzWHU3
WHcybW5GU3RXVlBmdTNaV2FtcXJKa3lmblcvYUREejdRSFhmY2tXL2ZPZjkveVNXWCtOMVAKZW5x
NjdyNzdia1ZIUjJ2UW9FRmU4NnBYcjY2UkkwZHEzTGh4emwrYXBkRHFzR1hMbGlwZXZIakFaUUx4
VmQ4NXg1TjMzMlhLbE5HRQpDUk9jNlpJbFN4YTZQUmUxb3V6VGdmcFFvSGx1UEtwVG1IMWtaMmRM
a29vWEw2NklDUDlEUGYzc2YraG4za0xwWjZHK0IveGUrOW01ClZwajMrSUtzRytxNGtTTlEzYmw1
ZlJLS1VOdHF1SUlkcDc5cjMzQzJXOUQzdkVEbko5eHo3Yy9XclZ1Vm5wN3ViS05ObXpZaHJSZDAK
anpmZGRGUEErUmRmZkxIYXRtM3JUR2RuWit1RkYxNVFqUm8xZE5WVlYybnYzcjJTcEo5Ly9sbWpS
NC9XdGRkZTZ5dzdaODRjVFpvMApTYU5Iai9aYjRQSGp4MnZod29YNitPT1BkZi85OSt2WFgzOVZV
bEtTaGc0ZHF1dXZ2MTR4TVRGYXQyNWR3RzM2MmtadXUzZnYxckJoCnd6UjA2RkF0V3JSSXpabzFV
NHNXTGJSMjdWcHQzYnBWdDk5K3U2cFdyYXI0K0hobm5jOC8vMXlqUm8zUzJMRmoxYlp0VzIzYnRz
MW4KK1RkdjNxeVdMVnZxaVNlZTBKWXRXeVFwN1BMNzRtdTVPWFBtNkxMTEx0T2JiNzRwU1pvOWU3
YXV2UEpLRFJnd1FKSzBhZE1teGNYRgo2Zm5ubjlmSWtTTVZGUldsRFJzMkJDeFBzSE1oK1Qvbmdl
b3AyRGtKVjdqdHRHUEhqbXJjdUxIZWZ2dHRwYWVuTzYrYm1SWXVYS2hiCmI3MjFRT1g0N3J2djlQ
MzMzL3U5M2RxelowOUowclJwMDd4ZVQwbEowWk5QUHFuS2xTc3JKaVpHTzNic2tIUjI4Rmk0Y0tG
dXZ2bG0KZmZiWlo1SUN0NTh6Wjg3b3VlZWUwNmhSb3hRYkc2dlhYMzlkVW5qMVBXellNRjE2NmFW
KzUvdmJmMEg2a2I5dHJWcTFTbjM2OU5HVApUejZwcVZPbnFtN2R1b3FPam5iYVZyRGpXYng0c2Fw
VXFhS1dMVnRxOSs3ZGtxUU5HemFvWnMyYVRqMzY2a01KQ1FucTI3ZXZoZzhmCnJxZWZmbHBWcTFa
VmpSbzF2QjRGQ3RUMy9kVi9zUE9XbDc5OUJLc1g2V3hiR2pod29FYU1HS0VCQXdabzQ4YU5mdmNU
THZyWldmUXoKYjRIZUF5N0VmbGJZOThwQTVmanV1Ky9VdVhObk5XclVTRjk4OFlXKysrNDdOV25T
Uk5PblR3KzVicEtUa3pWbzBDQTk4Y1FUNnRXcgpsd1lQSHF3elo4NEVyUE5nZFJQdXVCSG8vSVJ5
SFJPczdRVzduaWxJUDhnNVRsOWpRS0Q2OGRjZVFqbk92TmUrb1l6aG9WN0hCanFmCmdjNVB1T2M2
VUh0Nzc3MzM5TkpMTHlrek0xT1BQdnFvbm56eXlZRGI4aEx1clphOHQ5eHp1L3JxcTYxSmt5YVdr
SkJnKy9mdnQram8KYUh2NDRZZk56T3p3NGNNMllNQUFxMVNwa3BtWlpXUmtXSXNXTFp4MWh3d1o0
dHkreWF0V3JWb1dIeDl2Wm1hWm1abld0V3RYTzNYcQpsR1ZsWlZsY1hKeEZSVVhaaVJNbkFtNHo5
emJ5MnIxN3R6VnIxc3hxMTY1dDgrZlB0NVNVRkx2ampqdXNYcjE2Rmg4ZmIwZVBIclVYClgzelJQ
QjZQSFQ5KzNOTFMwdXl5eXk1emJvVzk5TkpMZHR0dHR6bmJ1K0dHRzJ6dzRNRm1aalo1OG1TYlBu
MjZNNitnNWM4dDBIS1gKWFhhWjErM3d6cDA3MngxMzNHRm1abXZYcnJXS0ZTdGEwNlpOYmY3OCtS
WVhGMmM3ZHV6d1c1NWc1OElzOERrUFZrK0J6b21aMmR5NQpjMDJTalIwNzF0YXRXK2YxcjNyMTZ0
YW1UUnUvNndacXB3a0pDVForL0hpYk9uV3FTYklQUHZqQW1iZDgrWEtMajQrM2I3NzV4aVRaCjVN
bVRuWGtUSjA0MFNiWnUzVHEvKzMzMzNYZnpiVE92OHVYTFc2TkdqWnpwNnRXclc2TkdqV3pod29X
MmN1VktxMVdybHRXcFU4Y3kKTWpMczlPblRscENRWUpKczZkS2xBZHVQbVZtWExsMmNSejAyYnR4
b2t1eTc3NzR6cy96MW5YTThMN3p3Z24zNDRZYzJiZG8wZS9UUgpSNjE1OCtaZTVaMHdZWUpWcVZM
RnpBSzMzM0Q3VWFCdEhUcDB5SzY0NGdxTGpvNjJSWXNXMlk4Ly9taFhYbm1sOWUvZjN5bFhzUGJ6
CjhNTVBXLzM2OVozcGpJd002OXUzci9QL3Z2clEzcjE3N2RKTEw3WGF0V3ZibWpWcmJQWHExZGFr
U1JPNy9QTEx6U3g0bS9aWC84SE8KVzI2QjloRkt2WFR2M3QxbXo1NXRabVpaV1ZsV3JWbzE2OVNw
azk5Nm9wL1J6d3JUendLOUIxeW8vYXl3NzVYQnlwSFQxajc5OUZOYgp1blNwalIwNzFsazNXTjJZ
bWJWdjM5NCsvUEJETXpOTFQwKzNhNjY1eG5yMDZCR3d6b09WS1p4eEkxRGRoWG9kRTByYkMzUTlF
MjQvCk1BczhCZ1NxSDEvdFlmdjI3U0VkWjk1cjMyREhIZXAxYktEeUJ1cy80YjVIQkdwdlptZmZR
eUlpSXZ5dTcwK1JmdzF2ang0OTFMRmoKUjFXdlhsMGRPblJ3UGxrZkZSV2x4bzBiTzdlVVRwNDhx
UzFidG1qcDBxV1NwUDc5K3dlOGpaVnoyMnp1M0xreU02MVpzMGJMbGkxVAoxYXBWZGVUSUVYMzU1
WmRCdCtudjFsdmR1blhWdEdsVE5XclVTTGZkZHB2S2xDbWpYcjE2YWQrK2ZYcm1tV2NVR1JtcHh4
OS9YR2FtCmZmdjJxVVNKRXVyZHU3ZWFOR2tpNmV6dHRkd3BPc2ZreVpNVkdSbXArKzY3ejNtdE1P
WFBFV2k1TW1YS2VCM25SUmRkNUV5M2J0MWEKMGRIUmF0Q2dnVzY3N1RaTm5qeFptemR2OWx1ZVlP
Y2loNzl6SGtvOWhYSTc5SXN2dnRDc1diTzgvcDArZlRyb2VzSGNkZGRkaW9xSwowdmp4NDUzWHBr
NmRXcWdQWXgwK2ZGaVNWTDU4ZWIvTGxDOWZYa2VPSFBGNjdiNzc3bFBQbmozVm9VTUh2ZmJhYS9y
aGh4K1VrSkNnCnNtWExxbDI3ZHBMTy90VTRVUHRadVhLbE5tL2VyRmF0V2ttU1ltSmlOSG55Wk5X
c1dkUFpqNi82TGxHaWhFcVdMS2xTcFVxcFZLbFMKQVk4djBQN0Q3VWVCdGxXNWNtWFZyVnRYalJz
M1ZvOGVQVlN6WmszZGNNTU4rczkvL3VOVm5rRHRaOUNnUWRxMWE1ZSsvZlpiU1dmLwpzcGp6eUkr
L1BsU3JWaTFkZnZubHV2bm1tM1hkZGRlcGZmdjJtajE3dHZidjM2OGRPM1lFYk5PQjZqL1FzZm82
SC83MkVheGUxcTFiCnA2VkxsenAzS2lJaUl0U3RXN2VBNXpRSC9ZeCtWcEIrSnZsL0Q3aFErMWxo
M3l1RGxhTmp4NDZLalkzVnM4OCtxeGt6Wm1qdzRNSE8KdXNIcVp0bXlaZnJxcTYvVXAwOGY1emo2
OWV1bnhZc1hhKzNhdFg3clBGQ1p3aDAzQXRWZHFOY3hvYlM5UU5jejRmYURIUDdHZ0VEMQo0NnM5
UkVWRmhYU2NlYTk5Z3gxM3FOZXhnY29iNlB5RWU2NkR0YmZDS1BJQWtydXhWS3hZVWNuSnlWN3pj
dVpYcWxSSnZYdjNWcytlClBmWG9vNCtxVnExYUtsYXNXTkR0cmwyN1ZwR1JrU3Bac3FSS2xpeXB0
bTNiYXNXS0ZZcUppUW02elVDRGFONTU1Y3FWODVyT2VhTTcKY3VTSVBCNlBKa3lZb0pNblQyclVx
RkZhdlhwMXZqZnFwVXVYYXVUSWtma2VXU2hNK1hPRVczZTVsU2xUUmxGUlVTR1ZKOVM2OG5mTwpR
Nm1uVUFMSWdBRUQ5TVliYjNqOXkzME1CVlc2ZEdrTkdEQkFXN1pzMGFwVnE3UjM3MTVkY3NrbGlv
eU1MUEEyNjlXckowazZkT2lRCnovbG1wcVNrcEh6UGcrWiszcjExNjlhUzVIeHRYMDRkZVR5ZWdP
ZnJ5eSsvVkpzMmJienFOQzR1enV0NGZOVjNwMDZkRkJzYnE3dnUKdWt0anhveFIrL2J0L1I1ZnNQ
WVNUajhLWlZ1NXQxZXVYRG1scHFaNmJTOVErMm5TcElsaVltSTBjK1pNU2RMeTVjdlZ2WHQzU1lI
NwprTWZqOGVwUDBkSFJxbGl4b2hJU0VnSzI2VUQxSDA0L0M5WnZBdFhMRjE5OG9lam9hSy9QVkpR
dFc1Wis5ditqbnhWOVA4czdQL2Q3CndJWGN6d3J6WGhuS3NxKy8vcm9TRXhNVkV4T1Q3LzA3VU4x
czJMQkJVVkZSS2xHaWhEUC9tbXV1a1hUMmtXOS9kUjZvVE9HT0c0SHEKTHB6cmsxRGFYaURoOUlN
Yy9zYUFZT2NzYjNzb3pIRUdPdTVRcjJNRGxUZlErUW4zWEFkcmI0VlI4RS9iRllGWnMyYXBXclZx
ZXVPTgpON1JwMHlZdFg3NDg0RiswSk9ubzBhTXFYcnk0YnJ6eHhpTGJwaThSRVJINUdreHVVNlpN
MFZkZmZhVnAwNmJwdmZmZTA0WU5HN3ptCnQydlhUcXRYcjliamp6K3VxVk9uRm5uNWkrbzRnNVdu
c0lMVjAvazJjT0JBalJvMVN1UEdqVk4wZExRZWZmVFJRbTB2NXdPNC9yNFgKLy9EaHc4ckl5RkRE
aGczOWJxTm16Wm9xVjY1Y3ZzRlVDbnkra3BLUy9INFdLUnlqUjQvMk95L2M5aEtvSDUzcnRpZEov
ZnIxMDhzdgp2NndSSTBhb2RPblNLbG15cERNdm5ENFVFUkhoZkRqWlg1c09WUC9oSG10Qis4MkJB
d2Q4L2hiRytmNXdNLzBzdjk5VFB3dms5OUxQCnd0bDJLTXVXS0ZGQ1VWRlJHajE2dEI1NjZDR2ZY
d0tSVzA3ZHBLU2s2T2pSbzBwT1RsYlpzbVVsU1kwYk4xYng0c1dkeitqNHF2TkEKWlNySXVCR283
b3JxK2lSY3dhN2I4c285QmhTa241eXI0d3hsdThISzYrLzhoSHV1UTJsdkJYWGVmZ245MEtGRE9u
ejRzTWFORzZkbAp5NVpwNjlhdG1qMTd0dC9sY3lxbmR1M2FXckZpaFZkS05qTjk4Y1VYUWJkWlZH
L0MyN2R2MThDQkEvWDY2Njk3cGNMY3lwVXJweGt6ClptajY5T242eHovKzRieGVtUExuQ0xaY3pq
Y2JoQ0pRZWZ3SnRSNURxYWZ6Y1dHVW5aM3QxRkdWS2xVVUd4dXJ4WXNYYThlT0hjNHQKeTNBZFBI
aFEwNlpOVTZOR2pkUzFhMWZOblR2WDUzbVlNMmVPU3BRbzRYWExQYStmZnZwSnAwK2ZWck5temZM
TkMzUythdGFzcVYyNwpkbW5QbmoxZTgzTC9sU0tVK2k1Um9vUU9IanpvM0RrSWRmL2hLb3B0QlR1
ZXUrNjZTNmRPbmRKamp6M205WUhuY01hZnhNUkVIVHQyClRNMmJOdy9ZcGdQVmZ6akhHa3EvOGFk
YXRXbzZjdVNJRWhNVHcxcnZYS0NmQmZaNzZtZisvSjc2V1RqYkRtWFo0Y09IYStuU3BmSjQKUEJv
K2ZIakFmZWV1bStqb2FHVmxaVG1QbGtwbkEzZG1acVlhTkdqZ3Q4NERsU25jY1NOUTNZVjdiUmRN
T05jejRjbzlCb1RiVDRyNgpPRVBkYmlqWHdvSE9UN2puT2xoN0s0eXdBa2gyZHJiUzA5UDkvc3Bo
U2txS1VsSlNuT2t6Wjg1NGZUTkRTa3FLenB3NUl6UFRzV1BICk5HZk9IRWxTNTg2ZGRjc3R0empw
S3E4S0ZTcm93SUVEa3M0K2E1cVVsS1M0dURpZE9IRkNodzhmMWl1dnZLTDY5ZXNIM0didWJadzQK
Y1NMZlBqSXlNcFNWbGVWTXA2V2xLU3NyU3hrWkdaTCs5MVZtMmRuWjJyRmpoN0t6czdWOSszWmxa
V1ZwOWVyVlNrMU5sWm5KekpTWgptU2t6VTVzMmJmVDAwMC9yb1ljZWNwNkp2ZnZ1dXd0VS90d0NM
ZGU0Y1dPdFg3OWU2ZW5wK3Vtbm43Um56eDRkTzNiTVdUY3pNOVByCm5BUXFUN0J6Y2VMRWlZRG5Q
Rmc5QlRzbk9kdnhOUzgxTmRYbjZ6bm5LRkE3UFg3OHVQTU11U1RuT2RFSEhuakFlUzFuZnU1OTVQ
eC8KM2dFeExTMU5qenp5aUhNaE0yN2NPQjA5ZWxSdnYvMjIxM0lIRGh6UTJMRmo5ZFJUVCttcXE2
N3ltcGU3N2ExY3VWSzlldlh5ZVpFVwo2SHpGeHNhcWRPblNldkRCQjdWanh3N3QyTEZEdzRZTjAr
V1hYeTRwLzduTE9aN2MzMDZVY3p3REJnelFGVmRjNGN6UDZRZkIya3M0Ci9Tall0dExUMDczcU9p
VWx4V3ZiZVk4bkxTMU44Zkh4em1zNXkvVHUzVnZyMTY5M2JodExnZnRRenZ3Y3ExYXRVcnQyN2RT
cVZhdUEKYmZyT08rLzBXLy9oOUxOZy9TWlF2Y1RHeHFwNDhlSmVYM3U3YytkT0hUMTYxS3Z1Y3FP
ZjBjOEswODhDdlFkY3lQMnNNTytWd1paZAp0bXlaNnRldnJ3WU5HbWpVcUZHYU5HbFN2c2RaL05Y
TkhYZmNvZXJWcTJ2RmloWE8vSTBiTnlvNk9scGR1blR4VytmQjJuUTQ0MGFnCnVqdDY5R2pJMTNi
QjJsNnc2NWx3K2tFT2YyTkFzSE9XdHoyRWN3MmIrOW8zMkhHSGVoMGI2Rm80V1A4SjUxd0hhMitT
ZE9yVUtXVm4KWjN1TkF5RUo5ZFBxMjdadHM3aTRPSk5rbDF4eWlZMFpNOForK2VVWFovNzgrZk10
SWlMQ0dqWnNhSnMzYjdaTm16Wlpnd1lOckhqeAo0clp3NFVKYnYzNjlYWHZ0dFNiSnhvMGJaNXMz
YjdhNmRldmFsQ2xUN0pOUFByR0JBd2Y2L1FHb1o1OTkxandlai9YcjE4K1NrcEpzCjBxUkpWcXBV
S2ZONFBCWVZGV1VMRml4d3l1aHZtM20za2R2YXRXdXRXclZxVnJseVpWdTFhcFh0M2J2WGV2VG9Z
WkxzeFJkZnRKTW4KVDlxSUVTTk1rdDE1NTUyMmE5Y3VhOXEwcVpVdFc5WWVmUEJCVzdKa2lWMTAw
VVYyenozMzJLeFpzNnhzMmJKV3QyNWQrK2FiYjJ6UApuajEyMFVVWFdkV3FWZTJ0dDk0eU15dFEr
Zk9lQzMvTGZmNzU1eFlaR1dsMTZ0U3h2LzcxcnpaZ3dBRHIyTEdqclZ5NTBqNzY2Q083CitPS0xy
V3JWcWpabnpoeG5lLzdLRSt4Y1RKMDZOZUE1Ly9YWFgvM1dVMXBhV3NCenNuanhZbXZac3FWSnN0
YXRXOXRubjMxbVptWkoKU1VuMjdMUFBtaVR6ZUR3MllzUUlyM1lZckozT25EblRHalpzYUZXclZy
VkpreVk1cjk5enp6MldtWm5wMU9IMTExOXZrcXhCZ3dZMgpiOTQ4bXpkdm5rVkhSNXNraTRtSnNm
dnV1ODlpWTJQdHBwdHVzc2pJU0l1S2lyTHM3R3huZS8vOTczK3RXN2R1MXJkdlgzdnJyYmZzCm1X
ZWVzWmlZR0pzNWMyYStPbjN4eFJldGNlUEc5dHBycjluZi92WTMrOHRmL21LblRwMXk1cWVucHp2
ZnpoUHNmQzFZc01DaW9xSk0Ka3RXc1dkTysrdW9ybitmdXZmZmVjNDducXF1dXNudnV1Y2Z1dWVj
ZTY5Njl1MFZGUlZuNTh1VXRNelBUMXE5ZmJ6RXhNU2JKSms2YwphR2xwYVg3M0gyNC9PbkRnZ045
dHJWNjkyaXBVcUdEVnFsV3p0V3ZYMnBZdFc2eGV2WHBXcWxRcHB5M2tiVC9idDI4M2o4Zmo5YTF6
Ck9lZnpiMy83bTlkcmdmcFFpeFl0ckduVHBqWjgrSEI3K2VXWHJYUG56bmJvMENFenM2QnRPbEQ5
aDlyUEF1MGpJU0VoYUwxODlORkgKVnE1Y09XdlFvSUhkZWVlZDFyTm5UMnZUcG8xOTlORkgrZlpG
UDZPZkZhYWZCWHZmdjFENzJmVHAwd3Y5WHVsdjJaVXJWMXFWS2xWcwp5NVl0Wm1hMmZmdDJLMWFz
bU5XdVhkdldyMThmdEc3TXpEWnQybVFOR3phMHYvLzk3N1owNlZMcjA2ZVA3ZGl4dzh3Q2oyMkJ5
aC9PCnVCR283a0s5dGd1bDdRVzZuaWxJUHdnMkJ2aXJIMS9YVHFGZXIrVzk5ZzAyaG9kekhldXZ2
TUg2VHpqbk9saDdXN2R1bmJWcjE4NGsKMlpOUFBtbDc5dXp4dVExZnd2NGEzcUtTODdWaUowNmNz
T1RrNUtETDUvMGwzYlMwTk51OWU3ZlhDUSsyVFYrL3hsc1lLU2twenYrbgpwNmVIdFc1QnloL3Fj
bWxwYVU3WlFpMlhyL0w0RTI0OUJxcW5vajRudnpWcGFXbTJiZHUyZkFITGw1OS8vdGxuL2FlbHBa
a2syN0JoCmc5ZHIvczVYZG5hMjE1dFZia1ZWMytHMGwzTzVyYnpIYy9qd1laL0xwYWFtZWswSDZr
TXRXclN3b1VPSFduSnlzdC90QldyVGdlby8KbkdNdHpQaVNtWm5wMU0yWk0yZkNXdmRDUkQ4N3Q5
c0t0Wi9sOVh2c1orRnN1NkIxSGtyZFpHZG5XMkppb3UzZXZkdnI5VkN1RC95VgpLZHh4dzFmZGhY
dHRGMHhCcm1lQzhUY0c1T3d2bEhOVzFNY1o2blpEdVJiT0VhaHRoM3V1L2JXM3d2Q1kvY1orcWhL
QWwxT25UcWxDCmhRbzZkZXFVMzF1OEtEb3RXN1pVKy9idE5XYk1tUE5kRkxpSWZ1WXUrcGwvMUEz
K0NNN3J0MkFCOEs5ang0NjY5dHByZGVXVlY2cC8KLy81Y0ZMa2dPenZiZWRZWWZ3ejBNL2ZSei95
amJ2Qkh3UjBRNERkcTY5YXRTa2hJVU1PR0RkV3hZMGZuNnlseDdreWZQdDM1a0YrZApPblhVdDIv
Zjgxd2luR3YwTS9mUnoveWpidkJIUVFBQkFBQUE0SnJ6OWpzZ0FBQUFBUDU0em5rQU9YYnNtSGJ0
Mm5XdWQvT2JrNXljCjdQZFhldDJVa1pHaDdkdTMrL3pseTkrYnRMUTBmZlBOTjBHWE8zcjBxTi9m
THNDNWQ3NzZ4cUZEaDd6T2U5N3AzNXVEQnc4VytwZHEKQzh1Tk9pNktmZnlSeGtrcDlMRlMrbU9O
bHpsdDZWeVBVY0hxLzN6djMyMEhEaHp3K28yTnZKS1RrNVdjbkZ6ZzlVTVpDd090ajNQagpuQWVR
RjE1NFFiMTY5VHJYdS9sTm1UVnJsaXBYcnF3Wk0yWVVlbHRMbGl4UlRFeU1QQjZQbWpkdnJvY2Vl
a2lEQmczU1k0ODlwamZmCmZGTS8vdmlqei9YMjdkdW5uajE3NnI3Nzd0T3FWYXMwZHV4WXRXelpV
aDk5OUpIWGNnc1hMbFRidG0zbDhYajB5Q09QK0MzSHdJRUQKNWZGNDFMQmhRODJiTnkvZi9MbHo1
NnBCZ3dieWVEenEwS0dERWhJU0NuWGM0VnEvZnIxYXRHaWgzcjE3KzExbTQ4YU42dFNwazZwVQpx
YUxJeUVqRnhzWjYvWXBvYm9zWEwxYno1czNsOFhqVXVuVnJMVisrWE5MWkgwNTc2cW1uNVBGNEZC
RVJvVmRmZlZXblRwMVNqeDQ5ClZMRmlSWFhwMGtWMzNubW5paFVycHRxMWErdjIyMi9YZGRkZHAy
TEZpdW5ERHo4c2NIMmY3L290S2tYWk44STFiTmd3cngreHlqdjkKZTdGejUwNTE3ZHBWTjkxMGt5
Njk5TktBdndaK3JnMGJOa3kzM1haYlNIMWp6cHc1cWwrL3Zqd2VqOXExYTZjK2ZmcW9XN2R1NnQ2
OQp1MWF0V2hWd0gvUG56NzhneGtucHdoZ3JwZkRHUytuM01XWU9HelpNSDN6d3dUa2RvNExWLzdr
ZUl3UHRmL2p3NFpvd1lZSWtxWDc5CitqcHg0b1ErL2ZSVDNYampqZko0UEtwWHI1NG1UWnBVNE91
U3ZEWnUzS2lPSFR2cTAwOC8xVXN2dmFRSEhuakErUkZCU2RxMGFaT2UKZSs0NUxWbXlST1BIajlj
RER6emdGWWFEclIvS1dIam8wQ0U5L3ZqajZ0R2poOWZyR1JrWnV2VFNTK1h4ZUx6K1JVUkU2T2Vm
Znc0NgpIeUVvekhmNHBxYW0yc3FWS3dNdWMvVG9VVXRNVEN6TWJpNEllZXVpUVlNR05uTGt5Q0xa
OWp2dnZHT1NiTkdpUmM1clI0NGNzWUVECkIxcGtaS1N0V2JQR2EvbHQyN1paMmJKbDdjMDMzL1I2
ZmYvKy9WYXJWaTBiTW1TSTErdno1czB6ajhkanBVdVg5dm45OWIvODhvdGQKZHRsbEpzbGVlKzAx
ditXTWo0ODNTYlo4K2ZLQ0hHYWh2Zjc2NjFhNWNtV2Y4MDZkT21WZHVuU3hUejc1eEg3KytXZm5S
OVplZXVrbAp2OXZMcWZkWnMyYmxtMWVwVWlWcjJMQ2hNOTI1YzJmNzRZY2ZuT25TcFV2YkF3ODg0
RXlQR1RQR3BreVpZbVlGcisvelhiOUZKVmpmCnlOdVhRaGxuZ3NuSXlMQzJiZHY2bmY2OXlNcktz
Z2tUSnRpeFk4Zk16R3p1M0xrbXlmNzFyMys1WHBhY09nNm5iN3p3d2dzbXlmbVIKTmpPelljT0dt
Y2Zqc1dYTGx2bmRoOW1GTTA2YW5mKytIR2lzTkN2WWVHbDJZWStadWR0U3VHTlV1SUxWLy9uYWY1
TW1UU3d4TWRHMgpidDFxN2RxMWMxNWZ0V3FWOHdOL09jTHRiM21kUEhuU0tsZXU3UHp3cDVsWnQy
N2RiT0RBZ2M1MDdkcTFiY1dLRmM3MDBLRkRiZmp3CjRTR3RIOHBZZU9yVUtWdTllclg5K2M5L3Rt
dXZ2ZGFyZkI5OTlKRzk4c29ydG1IREJ2disrKy90KysrL3QxbXpabG5MbGkxRG1vL2cKd3JvRFly
aytyNTZSa2FGNzc3MVhhOWFzQ2JoT1pHU2s4MVAyQmQxWFFlYWZxM1Y5OFZVWEpVcVVrTWZqS1pM
dFY2aFFRWkpVckZneAo1N1ZLbFNycDdiZmZWcmR1M1hUampUZHE3ZHExa3FUMDlIVGRmZmZkaW82
TzFxQkJnN3kyVTcxNmRZMGNPVkxqeG8xei9qb2xTUlVyClZsVDM3dDJWbXBxcXlaTW41OXYvQng5
OG9EdnV1TU9yTElIS2Vja2xseFR3U0F1blpNbVNmdXQ4N2RxMW1qcDFxbTYrK1daVnFWSkYKSTBh
TVVQMzY5UVBlaHM0NUhsL0hYS0ZDQmEvWGh3NGRxdHExYS92ZFZseGNuQm8xYWlTcDRQVmQyUG9O
MU82THVrOEVFcWh2NU8xTAp3Y2FaVU11OVpzMGF0V3ZYenUvMDcwVnljckxpNHVMMHB6LzlTWkxV
dFd0WGxTdFhUcFVxVlRvbit3dFUvemwxSEU3ZnlHbmpFUkgvCmUydDYrT0dIWldaYXNtU0ozMzNr
WHZlM1BrN21udjliSEN1bGdvMlgwb1U5WnVadVMrR01VUVVSclA3UHgvNzM3OSt2MU5SVTFhOWYK
WDB1V0xGSFBuajJkZVJVclZ2VDZyeFJlZi9QbGswOCswWkVqUjd6RzRldXZ2MTd2dlBPT0RoMDZw
S3lzTEowNmRVcmZmdnV0TXo4OQpQZDBwZDdEMVF4a0x5NVVycC9idDJ5czZPanBmZlZ4MzNYVWFQ
bnk0V3Jac3FhdXZ2bHBYWDMyMUVoTVRkY3N0dDRRMEg4R0ZGRURtCnpKbWpTWk1tYWZUbzBXclRw
bzBrYWZ6NDhWcTRjS0UrL3ZoajNYLy8vZnI2NjY4VkZ4ZW41NTkvWGlOSGpsUlVWSlNXTGwycTBh
TkgKNjlwcnI1VWtyVnExU24zNjlOR1RUejZwcVZPbnFtN2R1b3FPanRiZXZYdWRmYVdrcEdqUW9F
RjY5ZFZYMWJselovWHAwMGVqUm8xeQpPcHV2c2dTVGtKQ2d2bjM3YXZqdzRYcjY2YWRWdFdwVjFh
aFJ3K3VXYkZKU2tvWU9IYXJycjc5ZU1URXhXcmR1bmFTenR3RHpIdGVHCkRSdTh0cCszTG5LZU5j
ek96dFlMTDd5Z0dqVnE2S3FycnZJNlRuLzdDOWZvMGFPVmxwYW1CUXNXU0pLKysrNDdmZi85OTM0
ZmU4c1oKVktaTm0rYjFlc2VPSGRXNGNXTzkvZmJiU2s5UGQxNDNNeTFjdUZDMzNucHJnY3JuaTc5
alg3eDRzYXBVcWFLV0xWdHE5Kzdka3FRTgpHemFvWnMyYSt1eXp6d0t1RzB6bnpwMVZyVm8xWnpy
blZ0dFo0WVlBQUNBQVNVUkJWSDJnTjhCdzNIVFRUUUhuWDN6eHhXcmJ0cTB6CjdXWjkrK296aGVr
VDB0bm5aWjk3N2ptTkdqVktzYkd4ZXYzMTE1MTVyNzc2cWxxMmJCbXdUUDc2UnQ2K05IcjBhSy9w
UllzV0JTMjMKci8xLzhza25YbThNT2RQLy9PYy9GUlVWcFZ0dnZWVW5UNTdVQng5OG9LaW9LSFhx
MU1scGcyUEhqbFc3ZHUyVW1wcDZ6cGZQSzl6MQp5NWN2cjVJbFN6cnJ2L1BPTzNyenpUZFZ0V3BW
ditjaU9UbFpnd1lOMGhOUFBLRmV2WHBwOE9EQnp2UFEvc2EvWU9OMDdqb090Mi9rCjllOS8vMXVT
ZE9PTk4rYWJsL2U4K25NaGpwUFMrUmtycFhNL1hrcS92VEV6YjFzS2RZejYxNy8rcFdIRGhtbm8w
S0ZhdEdpUm1qVnIKcGhZdFdtanQyclhhdW5XcmJyLzlkbFd0V2xYeDhmRmhsY2V0L2YvNjY2KzYr
KzY3ZGZ2dHQwdVNNNTZ2WHIxYWp6NzZhRUdxTWw5Lwo4K1h3NGNQS3pzNVdTa3FLODFxclZxMlVt
Wm1wNzcvL1hzV0tGZE85OTk2cmwxNTZTYk5uejlhbVRadTBjZU5HRFJreUpLVDFDeklXCjVsYWpS
bzE4cnkxWXNNQVpNNExOUndpQzNTTEp5TWl3RmkxYU9OTkRoZ3h4ZmlxK1ZxMWFGaDhmYjJabWE5
ZXV0WW9WSzFyVHBrMXQKL3Z6NUZoY1haK3ZXcmJNQkF3WllwVXFWek16czBLRkRkc1VWVjFoMGRM
UXRXclRJZnZ6eFI3dnl5aXV0Zi8vK3p2YmZmUE5OZStLSgpKOHpNYk92V3JTYkpSbzBhWlQvKytH
UEFzZ1N5ZCs5ZXUvVFNTNjEyN2RxMlpzMGFXNzE2dFRWcDBzUXV2L3h5TXp2N2svUmR1M2ExClU2
ZE9XVlpXbHNYRnhWbFVWSlNkT0hIQzUzSDVlcVFzZDEyWW1WMTk5ZFhXcEVrVFMwaElzUDM3OTF0
MGRMUTkvUEREUWZmblM4NnQKdzl5M0duT0xqSXkwMXExYm01blp1KysrYTVMc2d3OCs4RnNmNWN1
WHQwYU5Ham5UQ1FrSk5uNzhlSnM2ZFdxK2RaY3ZYMjd4OGZIMgp6VGZmbUNTYlBIbXkzKzFPbkRq
UkpObTZkZXY4TGhQczJCOSsrR0dyWDcrK3MzeEdSb2IxN2RzM3BIVW5USmhnVmFwVThidnYzTEt6
CnM2MW16WnIyM1hmZitWMG1wOTdIamgxcjY5YXQ4L3BYdlhwMWE5T21qZDkxOHo1T2tGdEI2enVV
K3MzTFg1OHBUSjh3TSt2U3BZdXQKWGJ2V3pNdzJidHhva3B5NmZQdnR0KzJXVzI3eFc2WkFmY01z
ZjEvS1BSMnMzUDcyMzdwMWE4dk96dlk1M2J4NWMrdlhyNTh6Nzg5Lwovck05K09DRHp2U1NKVXZz
L2ZmZmQ2YlA5Zko1RldUOVE0Y08yZjMzMzI4UkVSSDIvLzdmLzdPMHREUy8yMi9mdnIxOStPR0ha
bWFXCm5wNXUxMXh6amZYbzBjUE1mSS9yaVltSkFjZnBISG5yUEVlZ3ZqRjI3RmpuTVltVEowL2Ev
UG56TFNvcXlucjI3R21abVpuNWxzKzkKand0bG5EUzdzTVpLczlER1M3TUxlOHpNM1piQ0dhTjI3
OTV0elpvMXM5cTFhOXY4K2ZNdEpTWEY3cmpqRHF0WHI1N0Z4OGZiMGFOSAo3Y1VYWHpTUHgyUEhq
eDgzcytEMWZ6NzIvOUJERDlrLy92RVBTMHRMczhxVkszdGRXMjNac3NVazJmang0NTNYd3VsdnZt
emV2TmtrCmVUMWF1V0hEQnEvSHVzNmNPV01kT25Rd2o4ZGp6WnMzdCtUazVMRFdOd3R0TEJ3d1lF
REF0bWxtdG1mUEhxdFhyMTZCNXlPL29IZEEKVHA0OHFTMWJ0bWpwMHFXU3BQNzkrM3ZkZHMrNWJk
VzZkV3RGUjBlclFZTUd1dTIyMnpSNThtUzFhdFZLalJzM2RwYXZYTG15NnRhdApxOGFORzZ0SGp4
NnFXYk9tYnJqaEJ2M25QLzl4dGpkanhneEZSa1pLa3E2NjZpcEZSVVZKa21yV3JCbTBMUDdVcWxW
TGwxOSt1VzYrCitXWmRkOTExYXQrK3ZXYlBucTM5Ky9kcng0NGRtanQzcnN4TWE5YXMwYkpseTFT
MWFsVWRPWEpFWDM3NXBjL2o4dmRJV2Q1YmVEMTYKOUZESGpoMVZ2WHAxZGVqUVFUdDM3cFNrZ1Bz
cmlDcFZxamgvQlR0OCtMQWtxWHo1OG42WEwxKyt2STRjT1pMdjlidnV1a3RSVVZFYQpQMzY4ODly
VXFWTURmdkF2WE1HT2ZkQ2dRZHExYTVkejJ6VWhJY0c1dFY2VTlmYVBmL3hEM2JwMVUvUG16WU11
KzhVWFgyaldyRmxlCi8wNmZQaDMyUHZOeW83Nzk5Wm5DOUltVksxZHE4K2JOYXRXcWxTUXBKaVpH
a3lkUFZzMmFOU1dkL1REb3h4OS9ITEJjL3ZwR2pyeDkKS1djNldMbDk3Zi83Nzc5WDQ4YU5uVzNr
blg3d3dRZTFmUGx5WldkblN6cjdsL1pGaXhZcE16TlRrbmNiZEdQNXZBcXkvcGt6WjlTMQphMWQx
Nzk1ZGt5Wk4wcWhSbzN4dWU5bXlaZnJxcTYvVXAwOGZTV2NmL2VqWHI1OFdMMTZzdFd2WCtoMy9B
bzNUdnVvNFhFT0dERkdOCkdqVjAvLzMzNi9QUFA5ZkNoUXU5SHZVb3lENHVwSEZTK3UyTWxWSjQ0
NlYwNFkyWnZ0cFNxR05VM2JwMTFiUnBVelZxMUVpMzNYYWIKeXBRcG8xNjllbW5mdm4xNjVwbG5G
QmtacWNjZmYxeG1wbjM3OW9WY0pyZjMvK1dYWDZwZHUzYjY5dHR2MWJ4NWM2L0hJQXNpZDMvegpw
V25UcHFwWnM2WW1UcHlvckt3c1pXUmthTzdjdVpLa2hnMGJTcEpLbHk2dDNyMTdxMzc5K3RxMGFa
TkdqeDRkMXZwUzZHTmhNQXNXCkxBaDR0elhZZk9RWHRJVlZxbFJKdlh2M1ZzK2VQZlhvbzQrcVZx
MWFYbThFdVR0c21USmxuRGVpM1BOekw1TjN1bHk1Y2w2UEhwUXIKVjg3cnVjRXFWYW80RnpyQnlo
S0l4K1B4V2pZNk9sb1ZLMVpVUWtLQzFxNWRxOGpJU0pVc1dWSWxTNVpVMjdadHRXTEZDc1hFeFBn
OQpMbi83OERkZHNXSkY1MnZrZ3UwdkhKbVptZHE5ZTdldXV1b3FTVks5ZXZVa25mMW1CMS9NVEVs
SlNUNURWT25TcFRWZ3dBQnQyYkpGCnExYXQwdDY5ZTNYSkpaYzRGeHBGSWRpeE4yblNSREV4TVpv
NWM2WWthZm55NWVyZXZYdEk2NGJxNU1tVG1qdDNyc2FOR3hmUzhnTUcKRE5BYmI3emg5UytVOWhD
TUcvVWRxTThVdEU5OCtlV1hhdE9talZmN2pvdUxDNnZjL3ZxR3IvbDVwd09WMjVkUFB2bEVOOTk4
czkvcAp2bjM3NnNpUkk4N2pROXUyYmRPdnYvNnF6ei8vWEttcHFjck96dGJGRjEvczJ2SjVGV1Q5
V3JWcUtUWTJWaDkvL0xFNmRlcWsrZlBuCis5ejJoZzBiRkJVVnBSSWxTaml2WFhQTk5aS2t6WnMz
Uy9JOS9nVWFwMzNWY2JqR2pSdW55Wk1uNjlkZmY5WC8vZC8vK1Z3bW5IMmMKcjNFeU1URlI3N3p6
anZNdjBEUHhlYmsxVmdZcm82L3hNdGc2RjlxWTZhc3RoVE5HNVIydnlwVXI1eldkRTNSOUJWcC8z
TnIvbGkxYgp0R0xGQ3YzNjY2LzY4Y2NmTlgvK2ZGV3ZYbDNmZnZ1dDgwZU9jT1h0Yi83YXk4Y2Zm
NnlrcENUVnExZFBqenp5aUk0ZlA2NkxMNzVZCnRXclZrblQyRWNpMWE5ZHErL2J0R2pSb2tGNTU1
Uld2endBRlcxOEtmU3dNSnRqalZUeCtGYjdpb1N3MGE5WXNWYXRXVFcrODhZWTIKYmRxazVjdVhC
L3pMVVdFTUdUSkVEenp3Z0xadTNhcFNwVXJwb29zdTB2WFhYMzlPeWhJUkVhSGl4WXZyNk5Hakts
Njh1TTluak0rRgpvdHhmWW1LaTB0TFNuRGVXbkEvdCtmc084Y09IRHlzakk4UHJMd1M1RFJ3NFVL
TkdqZEs0Y2VNVUhSMWQ0R2RBL1FubDJQdjE2NmVYClgzNVpJMGFNVU9uU3BaM25PSXVxM3A1Nzdq
bU5IVHRXcFVxVkt0UjJpc0s1cm04cHZENFRTcDlJU2tyU3RtM2JpcnljaFpGVGJsOFMKRWhJMGJO
Z3d2OU9Sa1pIcTBhT0hQdnJvSTFXb1VFRXRXclJRUkVTRVpzK2VyVjkrK1NYZm04cTVYajZ2d3F3
ZkVSR2gzcjE3K3czYgpLU2twT25yMHFKS1RrMVcyYkZsSlV1UEdqVlc4ZVBHQTM1c2ZiSnpPVzhj
RjBiZHZYeTFidGt5dnZmYWFPblRvb0U2ZE9ubk5EMmNmCjUydWMvTzkvLyt2MUhMekg0M0UrRXht
TVcyTmxzREw2R2k4TGMxeUZkUzdHektKb3I3bEZSRVFFREFqbldqajdYN05tamI3NjZpdlYKcjE5
ZmE5YXNjVDVQOC9YWFg2dEZpeFlGMm4vZS91YXZ2VFJ0MnRUcnMwblhYSE9OQmd3WTROeDlHVDkr
dkNaT25LaGl4WXJwelRmZgpWRkpTa3FaTm02WUJBd1pJVXREMTg5WkpvTEV3a0tTa0pPM1pzOGZ2
NTQ2RHpZZHZRZStBSERwMFNJY1BIOWE0Y2VPMGJOa3liZDI2ClZiTm56M2JtRjNYSDZ0YXRtL3Iz
NzY5bHk1WnA0OGFOWHQvL0hxd3M0VWhNVE5TeFk4ZlV2SGx6MWE1ZFd5dFdyUEM2RTJObSt1S0wK
TDhMYVpxaDFVVlQ3TXpNOS8venp1dlRTUy9YRUUwOUlPdnZHMnJWclY4MmRPOWQ1WkNPM09YUG1x
RVNKRWw3Zmg1MmRuZTBzVzZWSwpGY1hHeG1yeDRzWGFzV09IbWpScEVsYVovRGw0OEtDbVRac1cw
ckhmZGRkZE9uWHFsQjU3N0RHdkR4WVdSYjI5L3ZycmV1aWhoMVM5CmVuWG50YVNrcElJZFZBR2Rp
L3JPcWQrOHd1a3pvZmFKbWpWcmF0ZXVYZHF6WjQvWHZKeS9tQmVGUUhkQUFwVTdyLzM3OXlzcUtr
cWwKUzVmMk9aM2pnUWNlMEx4NTgvVHV1Ky9xNFljZjFvTVBQcWdGQ3hZb0lTSEI2OExhcmVXTGNu
MlB4K1BjMWNnck9qcGFXVmxaWHQ4MApjL2p3WVdWbVpxcEJnd1ordHhsb25QWlh4d1h4MWx0dnFV
NmRPcnIzM251OTdsYUVzNC96T1U3ZWVPT04rdlRUVDUxLy9mdjNEMXBlCnQ4ZktRR1gwTjE0VzVM
Z0s0MXlPbVFWdHIyNkhpbk8xLzhjZWUweVJrWkhxMzcrL0JnOGVyRjkvL1ZYeDhmRjYvUEhIQzdR
UFgvMHQKbFBieTRZY2Y2ai8vK1krZWVlWVpTV2Z2MW16ZHV0WHJXNnZ1di85K2JkcTB5ZWVkbWJ6
cit4Sm9MQXprazA4K1ViZHUzZncrbGhacwpQbndMV2x2SGpoM1RuRGx6SkozOVpveGJicm5GK1V0
WmhRb1ZkT0RBQVVuU2lSTW5sSm1abWUvWEpGTlNVblRtekJubnN4cnA2ZWxlCkEzNUtTb3F5c3JL
YzZaZGZmbGxYWEhHRkJnOGVyTHZ1dWt0bHlwUUpxU3luVDUvVzhPSER0V25UcG9ESGttUFZxbFZx
MTY2ZFdyVnEKcGJ2dnZsdEpTVW1LaTR2VGlSTW5kUGp3WWIzeXlpdk83WGRmeDVWWDNycElTVW54
K25hR00yZk9PTnNJdHIrOFRwdzRJVWxlOWJSMwo3MTROR1RKRWl4Y3Yxc3laTTcyKzJXSGN1SEU2
ZXZTbzNuNzdiYS90SERod1FHUEhqdFZUVHozbDNCcVZwT1BIanp2UFJFdHluaGQ5CjRJRUhuTmR5
NXVlVUpWQTU4NzZocDZXbDZaRkhIbEd6WnMxQ092WUtGU3FvZCsvZVdyOSt2ZGRnRVd6ZDlQUjBy
eDhoeW12NjlPazYKY2VLRTB0UFR0VzdkT24zenpUZDYrKzIzL2JhWm5QUGw2NWhUVTFQOTFrVjJk
cmJTMDlQOS9ucHdRZXM3bFByTksxQ2Z5Wm1mSTlRKwpFUnNicTlLbFMrdkJCeC9VamgwN3RHUEhE
ZzBiTmt5WFgzNjVwTE4vVVF2MFY2WkFmVVBLMzVmeVRnY3FkOTc5QjN2OEtrZlhybDFWCnFsUXBG
U3RXVEpkY2NvbHV1T0VHbFM5ZlhsV3JWdlg1Sm53dWwwOUxTMU44Zkx4enpPR3NuNUtTb3ErLy90
b1piN095c3JSczJUSzkKK3VxclByZC94eDEzcUhyMTZscXhZb1V6ZitQR2pZcU9qbGFYTGwwaytS
Ny9BbzNUZ1I2TkN0WTNjaDRSeVRuUDVjcVYwNnhaczNUcwoyREhkZSsrOVR0djN0WThMWlp6TVBm
KzNPbFpLNFkrWDBvVTVadnBxUytHT1VSa1pHVjd0TGkwdHpmbGNnaVRuZ2ptbkhIbnJQMitmCmQz
di9xMWF0VW9jT0hmVHR0OStxY2VQR1h0OGVKY2s1TDduUFQ3ajlMWkRFeEVTTkhEbFNIMzMwa2ZN
NFhhVktsVlN0V2pVdFc3Yk0KV2U3a3laTnExcXhadnJ2ZHZ0WVBaU3pNWFYrKy9oQ1I0NS8vL0dm
QU84M0I1c09QWUo5UzM3WnRtOVd0VzllbVRKbGluM3p5aVEwYwpPTkF5TWpMTXpPelpaNTgxajhk
ai9mcjFzNGtUSjlyRkYxOXNWYXRXdFRsejVwaVoyZnIxNiszYWE2ODFTVFp1M0RoTFNFaXdDaFVx
CldMVnExV3p0MnJXMlpjc1dxMWV2bnBVcVZjbysrK3d6TXpONy9QSEhUWkpKc21MRmlsbmx5cFZ0
NE1DQmxwYVdGckFzbXpkdnRvaUkKQ0w4L0F0T2lSUXRyMnJTcERSOCszRjUrK1dYcjNMbXpIVHAw
eUprL2FkSWtLMVdxbEhrOEhvdUtpcklGQ3hhWTJka2ZtOGw3WEw3awpyb3VwVTZkYVJFU0VOV3pZ
MERadjNteWJObTJ5QmcwYVdQSGl4VzNod29VQjk1ZlhraVZMckhuejVpYkpycjc2YW91TmpiVzJi
ZHRhCnAwNmQ3QzkvK1l2dDJyWEw1M3IvL2U5L3JWdTNidGEzYjE5NzY2MjM3SmxubnJHWW1CaWJP
WE9tMTNJelo4NjBoZzBiV3RXcVZXM1MKcEVuTzYvZmNjNC96clRPZmYvNjVYWC85OVNiSkdqUm9Z
UFBtemN1M3Yzbno1bGwwZExSSnNwaVlHTHZ2dnZzc05qYldicnJwSm91TQpqTFNvcUNqbkcwWkNP
ZmJQUC8vYy92YTN2K1Y3M2QrNjY5ZXZ0NWlZR0pOa0V5ZE96UGRORjZ0V3JiSVNKVW80YlN2blg3
VnExWHgrCnU4N2l4WXV0WmN1V0pzbGF0Mjd0dE0ra3BDVG5SN2s4SG8rTkdESENmdm5sRjJlOWJk
dTJXVnhjbkVteVN5NjV4TWFNR2VNMXY2RDEKSFU3OTVoYW96eFMwVDVpWkxWaXd3S0tpb2t5UzFh
eFowNzc2Nml0bjN1REJnNjFLbFNvKzYzWCsvUGxCKzBidXZwUlQzN21uZzVVNwo5LzY3ZE9saVI0
OGVkZWJsbmM3dHlTZWZ0TjI3ZHp2VHc0Y1A5NXAyYS9udDI3ZWJ4K094NmRPbmg3MytEei84WUZG
UlVWYW5UaDE3CjVwbG5iT0RBZ2Jaang0NkEyOSswYVpNMWJOalEvdjczdjl2U3BVdXRUNTgrempy
K3hyOUE0N1MvT2c3V04yYlBubTMxNnRVelNkYTUKYzJldk5qVnk1RWlUWkRmZmZMTnQzNzQ5M3o0
dWxISFM3TGMvVnBxRlAxNmFYYmhqWnQ2MkZPNFl0V1RKRXF0V3JacFZybHpaVnExYQpaWHYzN3JV
ZVBYbzRQOXgzOHVSSkd6RmloRW15TysrODB4WXRXcFN2L25QM1NiZjNuL050cEdabXI3NzZhcjRm
UUZ5MmJKbDE2dFRKCkpGbjkrdlZ0eXBRcEJlNXZlZTNidDg5ZWZ2bGxlK2loaDN5T0dSczJiTEQ3
N3J2UDR1UGo3ZDEzMzdWbm4zM1dkdTdjR2RMNm9ZeUYKcWFtcE5tUEdES3RXclpxVktsWEtaczZj
Nlh4VFdJNlRKMDlheFlvVjdjeVpNejZQSWRoOCtCYzBnT1I4RmR1SkV5ZTh2Z0l0aDY5ZgpKUzJN
K1BoNFMweE10SC85NjEvMjlkZGYyNUlsUyt6KysrKzNGU3RXQkMzTHlaTW4vZjVTYTRzV0xXem8w
S0dXbkp4c2h3OGY5cmxNCldscWE3ZDY5MjdsQUMxZTRkVkhZL1lXNmoyM2J0bGxTVXRJNTIwZEJo
SExzcWFtcEJWNFhad1hxTTRYdEU5bloyVjRYL3JsZlQwbEoKS1ZTNTgvYWwzTlBCeXAxNy8rdlhy
L2VhbDNjNnQ3enR6Vi83YzJONVg4Y1Z6dm81di80YjZ2YXpzN010TVRFeFlJREtMZEE0SGFpTwpp
MHBSNytPM09rNmFNVmFlYXdWdFMwVjk3ZU52REhaci8yNUxTMHV6bFN0WDJ1blRwNE11ZStyVXFY
d1grS0d1SDJ3c0RPYk1tVE8yCmI5KytBcytIZng0ekYzOENPWWgzM25sSGMrZk96ZmR0TnN1WEwx
ZmR1bldkYnk3eFo5cTBhYnJtbW11OGJwdm5hTm15cGRxM2I2OHgKWThZVWFabUJDOVdGMmljdTFI
TC9YaFIybkFZQUlLUnZ3WExMdGRkZXE4R0RCK3VPTys1UVRFeU16cHc1bzZTa0pQWG8wU09rTjdW
YgpiNzFWRlN0V3pQZDZkbmEyZnZycEo2OFB6UUovWkJkcW43aFF5LzE3VXRoeEdnQ0EzOVFkRUVu
NjVaZGY5T1dYWCtyUW9VUHEwS0ZECmtieWhUWjgrM2ZuQVZwMDZkZFMzYjk5Q2J4TzRrRjJvZmVK
Q0xmZnZ6YmtZcHdFQWZ4eS91UUFDQUFBQTRQZUxMeTBHQUFBQTRCb0MKQ0FBQUFBRFhFRUFBQUFB
QXVJWUFBZ0FBQU1BMUJCQUFBQUFBcmlHQUFBQUFBSEFOQVFRQUFBQ0Fhd2dnQUFBQUFGeERBQUVB
QUFEZwpHZ0lJQUFBQUFOY1FRQUFBQUFDNGhnQUNBQUFBd0RVRUVBQUFBQUN1SVlBQUFBQUFjQTBC
QkFBQUFJQnJDQ0FBQUFBQVhFTUFBUUFBCkFPQWFBZ2dBQUFBQTF4QkFBQUFBQUxpR0FBSUFBQURB
TlFRUUFBQUFBSzRoZ0FBQUFBQndEUUVFQUFBQWdHc0lJQUFBQUFCY1F3QUIKQUFBQTRCb0NDQUFB
QUFEWEVFQUFBQUFBdUlZQUFnQUFBTUExQkJBQUFBQUFyaUdBQUFBQUFIQU5BUVFBQUFDQWF3Z2dB
QUFBQUZ4RApBQUVBQUFEZ0dnSUlBQUFBQU5jUVFBQUFBQUM0aGdBQ0FBQUF3RFVFRUFBQUFBQ3VJ
WUFBQUFBQWNBMEJCQUFBQUlCckNDQUFBQUFBClhFTUFBUUFBQU9BYUFnZ0FBQUFBMXhCQUFBQUFB
TGlHQUFJQUFBREFOUVFRQUFBQUFLNGhnQUFBQUFCd0RRRUVBQUFBZ0dzSUlBQUEKQUFCY1F3QUJB
QUFBNEJvQ0NBQUFBQURYRUVBQUFBQUF1SVlBQWdBQUFNQTFCQkFBQUFBQXJpR0FBQUFBQUhBTkFR
UUFBQUNBYXdnZwpBQUFBQUZ4REFBRUFBQURnR2dJSUFBQUFBTmNRUUFBQUFBQzRoZ0FDQUFBQXdE
VUVFQUFBQUFDdUlZQUFBQUFBY0EwQkJBQUFBSUJyCkNDQUFBQUFBWEVNQUFRQUFBT0FhQWdnQUFB
QUExeEJBQUFBQUFMaUdBQUlBQUFEQU5RUVFBQUFBQUs0aGdBQUFBQUJ3RFFFRUFBQUEKZ0dzSUlB
QUFBQUJjUXdBQkFBQUE0Qm9DQ0FBQUFBRFhFRUFBQUFBQXVJWUFBZ0FBQU1BMUJCQUFBQUFBcmlH
QUFBQUFBSEFOQVFRQQpBQUNBYXdnZ0FBQUFBRnhEQUFFQUFBRGdHZ0lJQUFBQUFOY1FRQUFBQUFD
NGhnQUNBQUFBd0RVRUVBQUFBQUN1SVlBQUFBQUFjQTBCCkJBQUFBSUJyQ0NBQUFBQUFYRU1BQVFB
QUFPQWFBZ2dBQUFBQTF4QkFBQUFBQUxpR0FBSUFBQURBTlFRUUFBQUFBSzRoZ0FBQUFBQncKRFFF
RUFBQUFnR3NJSUFBQUFBQmNRd0FCQUFBQTRCb0NDQUFBQUFEWEVFQUFBQUFBdUlZQUFnQUFBTUEx
QkJBQUFBQUFyaUdBQUFBQQpBSEFOQVFRQUFBQ0Fhd2dnQUFBQUFGeERBQUVBQUFEZ0dnSUlBQUFB
QU5jUVFBQUFBQUM0aGdBQ0FBQUF3RFVFRUFBQUFBQ3VJWUFBCkFBQUFjQTBCQkFBQUFJQnJDQ0FB
QUFBQVhFTUFBUUFBQU9BYUFnZ0FBQUFBMXhCQUFBQUFBTGlHQUFJQUFBREFOUVFRQUFBQUFLNGgK
Z0FBQUFBQndEUUVFQUFBQWdHc0lJQUFBQUFCY1F3QUJBQUFBNEJvQ0NBQUFBQURYRUVBQUFBQUF1
SVlBQWdBQUFNQTFCQkFBQUFBQQpyaUdBQUFBQUFIQU5BUVFBQUFDQWF3Z2dBQUFBQUZ4REFBRUFB
QURnR2dJSUFBQUFBTmNRUUFBQUFBQzRoZ0FDQUFBQXdEVUVFQUFBCkFBQ3VJWUFBQUFBQWNBMEJC
QUFBQUlCckNDQUFBQUFBWEVNQUFRQUFBT0FhQWdnQUFBQUExeEJBQUFBQUFMaUdBQUlBQUFEQU5R
UVEKQUFBQUFLNGhnQUFBQUFCd0RRRUVBQUFBZ0dzSUlBQUFBQUJjUXdBQkFBQUE0Qm9DQ0FBQUFB
RFhFRUFBQUFBQXVJWUFBZ0FBQU1BMQpCQkFBQUFBQXJpR0FBQUFBQUhBTkFRUUFBQUNBYXdnZ0FB
QUFBRnhEQUFFQUFBRGdHZ0lJQUFBQUFOY1FRQUFBQUFDNGhnQUNBQUFBCndEVUVFQUFBQUFDdUlZ
QUFBQUFBY0EwQkJBQUFBSUJyQ0NBQUFBQUFYRU1BQVFBQUFPQWFBZ2dBQUFBQTF4QkFBQUFBQUxp
R0FBSUEKQUFEQU5RUVFBQUFBQUs0aGdBQUFBQUJ3RFFFRUFBQUFnR3NJSUFBQUFBQmNRd0FCQUFB
QTRCb0NDQUFBQUFEWEVFQUFBQUFBdUlZQQpBZ0FBQU1BMUJCQUFBQUFBcmlHQUFBQUFBSEFOQVFR
QUFBQ0Fhd2dnQUFBQUFGeERBQUVBQUFEZ0dnSUlBQUFBQU5jUVFBQUFBQUM0CmhnQUNBQUFBd0RV
RUVBQUFBQUN1SVlBQUFBQUFjQTBCQkFBQUFJQnJDQ0FBQUFBQVhFTUFBUUFBQU9BYUFnZ0FBQUFB
MXhCQUFBQUEKQUxnbXJBQnk2dFFwN2R1M1Q1SjArdlJwcGFhbUZsbEJmdjc1Wi8zODg4L085UEhq
eDR0azJXQkNPYVpneXlRbkp5c2pJNlBBWlFBQQpBQUQrS0R4bVpzRVdPbmp3b0o1KyttbVZLVk5H
WmN1VzFabzFhM1RtekJtOTk5NTdhdDI2dFQ3KytHTzk4c29yMnJ4NXMxcTFhcVhuCm4zOWVQWHIw
a0NUdDNMbFRMN3p3Z3ViTm02Y0JBd2JveFJkZlZKVXFWU1JKSjA2YzBOQ2hRN1Zueng0MWE5Wk1a
Y3FVMGNhTkc1V2QKbmEzczdHeDk4Y1VYVGhsQ1dYYnUzTGw2OGNVWHRYUG5UblhvMEVGMTY5YVZt
U2tsSlVYZmZmZWRvcU9qOWNrbm40UjBUS0V1STBtdApXN2ZXbFZkZXFlblRweGZaaVFFQUFBQitq
NHFIc3RDUUlVT1VucDZ1R1RObVNKSXlNakxVc21WTEhUaHdRSkxVcTFjdkhUNThXSEZ4CmNSbzhl
TEFUUGlRcE9qcGFzMmJOMHRkZmY2MUpreVk1cisvWXNVT2RPblZTeDQ0ZGxaQ1FvSklsUzBxU3pF
elBQdnVzL3ZuUGY0YTkKN0oxMzNxazllL2JvMldlZlZYeDh2RmRJK09XWFh4UVhGeGZ5TVlXNmpD
VDk5Tk5QdXVpaWkwS3BTZ0FBQU9BUExhUkhzSGJ1M0tuOQorL2M3anhtVktGRkM3Ny8vdnRlalR4
VXJWdlQ2YjI3Rml4ZFgwNlpObmVtc3JDemRkOTk5aW9pSTBKUXBVNXhBSVVrZWowY2pSNDdVCkZW
ZGNFZmF5a2xTaFFnVm5YbTVseXBUUmhBa1R3anFtVUphUnBEcDE2dWp5eXkvM1g0RUFBQUFBSklV
WVFQcjA2YU5ObXphcFU2ZE8KU2twS2tpUTFhOVpNanp6eVNPZzdpdmpmcmo3NzdETnQzTGhSL2Zy
MVUrblNwWDB1KytHSEg0YTliQ0REaGczVHBaZGVHdFl4aFhyYwpkZXJVVWExYXRZS1dBUUFBQVBp
akN5bUFEQm8wU0gvKzg1KzFldlZxWFhYVlZWcTBhRkdoZHZydmYvOWIwdGtMZDM5eTdxU0VzMnh1
ClM1Y3UxWXdaTS9UKysrOXIwS0JCV3JObWpkZjhVSTRwMU9PdVVhT0dhdGFzNmJkOEFBQUFBTTRL
S1lDVUwxOWVuMzMybVo1NTVobWQKT0hGQ3ZYcjEwc1NKRXd1ODA0TUhEMHFTS2xXcVZLVEw1bGFp
UkFtVkxGbFNwVXFWVXFsU3BmTE5EK1dZUWozdXl5NjdUSmRkZGxsWQo1UU1BQUFEK2lFTCtHdDRT
SlVvb1BqNWVuMy8rdWFLaW92VG9vNDlxM3J4NUJkcHB6dU5LT2VHaXFKYk5yVk9uVG9xTmpkVmRk
OTJsCk1XUEdxSDM3OXZtV0NlV1lRbG1tY3VYS3FsYXRXbGpsQXdBQUFQNklnZ2FRSDMvOFVhZFBu
M2FtcjcvK2V1ZGJwM0pmaU5lb1VVT1MKZFBUb1VaL2JLVmFzbVBQL0RSczJsQ1J0Mzc0OWFBSERX
VGFRMGFOSE8vOGZ5akdGZXR6UzJic3ozQUVCQUFBQWdnc2FRSktTa3ZURwpHMjk0dmRhbVRSdlZx
bFZMKy9mdmQxNXIzTGl4aWhVcnBwMDdkK2JieHI1OSs1eUFJa2tkTzNaVWt5Wk45UDc3Nyt2a3la
TSs5NXVaCm1SbjJzb0dVS0ZGQ0J3OGUxTXlaTTBNNnBsQ1BXenI3T3lCLyt0T2ZncFlCQUFBQStL
TUxHa0RxMUttamNlUEdLVEV4MFhudDBLRkQKT25EZ2dMcDE2K2E4ZHRGRkY2bDkrL2FhUDMrKzEx
MlE3T3hzalJ3NVV2ZmNjOC8vZGhvUm9Ra1RKaWdqSTBQOSt2WHp1dE1nU1h2Mwo3dFZmLy9wWFpX
Wm1ocldzZFBZSEN5VXBQVDNkYTdtMHREUU5HREJBVjF4eFJVakhGT3B4UzlLbm4zNnFyNy8rT2xo
VkFnQUFBSDk0CklmMFNlb01HRFZTMWFsVTFiZHBVVVZGUm1qTm5qbHExYXFXMzNucExKVXFVY0pZ
N2ZmcTA3cjc3YnUzY3VWUHQyclZUbVRKbGRQRGcKUVQzNjZLTzY4Y1liODIxMzE2NWQ2dCsvdi9i
djM2OGJicmhCRlNwVTBLWk5tOVNxVlN1OStPS0xYaDhlRDJYWitmUG5hL2p3NGRxNQpjNmV1dXVv
cTU3ZEhUcHc0b1EwYk5pZ3RMVTNIang5WHNXTEZRanFtVUkrN2VmUG1xbG16cGhZc1dGRHdNd0VB
QUFEOEFZUVVRSTRmClA2NC8vZWxQU2tsSjBkNjllMVdqUmcyVksxZk83L0laR1JsS1RFeFUxYXBW
UTNvMEtUVTFWVHQyN0ZEeDRzVlZ2MzU5bjcvM1VaQmwKQzN0TW9SNTNjbkt5U3BZczZmVWppUUFB
QUFEeUN5bUFBQUFBQUVCUkNQbHJlQUVBQUFDZ3NBZ2dBQUFBQUZ4REFBRUFBQURnR2dJSQpBQUFB
QU5jUVFBQUFBQUM0aGdBQ0FBQUF3RFVFRUFBQUFBQ3VJWUFBQUFBQWNBMEJCQUFBQUlCckNDQUFB
QUFBWEVNQUFRQUFBT0FhCkFnZ0FBQUFBMXhCQUFBQUFBTGlHQUFJQUFBREFOUVFRQUFBQUFLNGhn
QUFBQUFCd0RRRUVBQUFBZ0dzSUlBQUFBQUJjUXdBQkFBQUEKNEJvQ0NBQUFBQURYRUVBQUFBQUF1
SVlBQWdBQUFNQTFCQkFBQUFBQXJpR0FBQUFBQUhBTkFRUUFBQUNBYXdnZ0FBQUFBRnhEQUFFQQpB
QURnR2dJSUFBQUFBTmNRUUFBQUFBQzRoZ0FDNnY4WWJBQUFCMXBKUkVGVUFBQUF3RFVFRUFBQUFB
Q3VJWUFBQUFBQWNBMEJCQUFBCkFJQnJDQ0FBQUFBQVhFTUFBUUFBQU9BYUFnZ0FBQUFBMXhCQUFB
QUFBTGlHQUFJQUFBREFOUVFRQUFBQUFLNGhnQUFBQUFCd0RRRUUKQUFBQWdHc0lJQUFBQUFCY1F3
QUJBQUFBNEJvQ0NBQUFBQURYRUVBQUFBQUF1SVlBQWdBQUFNQTFCQkFBQUFBQXJpR0FBQUFBQUhB
TgpBUVFBQUFDQWF3Z2dBQUFBQUZ4REFBRUFBQURnR2dJSUFBQUFBTmNRUUFBQUFBQzRoZ0FDQUFB
QXdEVUVFQUFBQUFDdUlZQUFBQUFBCmNBMEJCQUFBQUlCckNDQUFBQUFBWEVNQUFRQUFBT0FhQWdn
QUFBQUExeEJBQUFBQUFMaUdBQUlBQUFEQU5RUVFBQUFBQUs0aGdBQUEKQUFCd0RRRUVBQUFBZ0dz
SUlBQUFBQUJjUXdBQkFBQUE0Qm9DQ0FBQUFBRFhFRUFBQUFBQXVJWUFBZ0FBQU1BMUJCQUFBQUFB
cmlHQQpBQUFBQUhBTkFRUUFBQUNBYXdnZ0FBQUFBRnhEQUFFQUFBRGdHZ0lJQUFBQUFOY1FRQUFB
QUFDNGhnQUNBQUFBd0RVRUVBQUFBQUN1CklZQUFBQUFBY0EwQkJBQUFBSUJyQ0NBQUFBQUFYRU1B
QVFBQUFPQWFBZ2dBQUFBQTF4QkFBQUFBQUxpR0FBSUFBQURBTlFRUUFBQUEKQUs0aGdBQUFBQUJ3
RFFFRUFBQUFnR3NJSUFBQUFBQmNRd0FCQUFBQTRCb0NDQUFBQUFEWEVFQUFBQUFBdUlZQUFnQUFB
TUExQkJBQQpBQUFBcmlHQUFBQUFBSEFOQVFRQUFBQ0Fhd2dnQUFBQUFGeERBQUVBQUFEZ0dnSUlB
QUFBQU5jUVFBQUFBQUM0aGdBQ0FBQUF3RFVFCkVBQUFBQUN1SVlBQUFBQUFjQTBCQkFBQUFJQnJD
Q0FBQUFBQVhFTUFBUUFBQU9BYUFnZ0FBQUFBMXhCQUFBQUFBTGlHQUFJQUFBREEKTlFRUUFBQUFB
SzRoZ0FBQUFBQndEUUVFQUFBQWdHc0lJQUFBQUFCY1F3QUJBQUFBNEJvQ0NBQUFBQURYRUVBQUFQ
ai8ycTlqQVFBQQpBSUJCL3RhejJGVVdBYkFSRUFBQVlDTWdBQURBUmtBQUFJQ05nQUFBQUJzQkFR
QUFOZ0lDQUFCc0JBUUFBTmdJQ0FBQXNCRVFBQUJnCkl5QUFBTUJHUUFBQWdJMkFBQUFBR3dFQkFB
QTJBZ0lBQUd3RUJBQUEyQWdJQUFDd0VSQUFBR0FqSUFBQXdFWkFBQUNBallBQUFBQWIKQVFFQUFE
WUNBZ0FBYkFRRUFBRFlDQWdBQUxBUkVBQUFZQ01nQUFEQVJrQUFBSUNOZ0FBQUFCc0JBUUFBTmdJ
Q0FBQnNCQVFBQU5nSQpDQUFBc0JFUUFBQmdJeUFBQU1CR1FBQUFnSTJBQUFBQUd3RUJBQUEyQWdJ
QUFHd0VCQUFBMkFnSUFBQ3dFUkFBQUdBaklBQUF3RVpBCkFBQ0FqWUFBQUFBYkFRRUFBRFlDQWdB
QWJBUUVBQURZQ0FnQUFMQVJFQUFBWUNNZ0FBREFSa0FBQUlDTmdBQUFBQnNCQVFBQU5nSUMKQUFC
c0JBUUFBTmdJQ0FBQXNCRVFBQUJnSXlBQUFNQkdRQUFBZ0kyQUFBQUFHd0VCQUFBMkFnSUFBR3dF
QkFBQTJBZ0lBQUN3RVJBQQpBR0FqSUFBQXdFWkFBQUNBallBQUFBQWJBUUVBQURZQ0FnQUFiQVFF
QUFEWUNBZ0FBTEFSRUFBQVlDTWdBQURBUmtBQUFJQ05nQUFBCkFCc0JBUUFBTmdJQ0FBQnNCQVFB
QU5nSUNBQUFzQkVRQUFCZ0l5QUFBTUJHUUFBQWdJMkFBQUFBR3dFQkFBQTJBZ0lBQUd3RUJBQUEK
MkFnSUFBQ3dFUkFBQUdBaklBQUF3RVpBQUFDQWpZQUFBQUFiQVFFQUFEWUNBZ0FBYkFRRUFBRFlD
QWdBQUxBUkVBQUFZQ01nQUFEQQpSa0FBQUlDTmdBQUFBQnNCQVFBQU5nSUNBQUJzQkFRQUFOZ0lD
QUFBc0JFUUFBQmdJeUFBQU1CR1FBQUFnSTJBQUFBQUd3RUJBQUEyCkFnSUFBR3dFQkFBQTJBZ0lB
QUN3RVJBQUFHQWpJQUFBd0VaQUFBQ0FqWUFBQUFBYkFRRUFBRFlDQWdBQWJBUUVBQURZQ0FnQUFM
QVIKRUFBQVlDTWdBQURBUmtBQUFJQ05nQUFBQUJzQkFRQUFOZ0lDQUFCc0JBUUFBTmdJQ0FBQXNC
RVFBQUJnSXlBQUFNQkdRQUFBZ0kyQQpBQUFBR3dFQkFBQTJBZ0lBQUd3RUJBQUEyQWdJQUFDd0VS
QUFBR0FqSUFBQXdFWkFBQUNBallBQUFBQWJBUUVBQURZQ0FnQUFiQVFFCkFBRFlDQWdBQUxBUkVB
QUFZQ01nQUFEQVJrQUFBSUNOZ0FBQUFCc0JBUUFBTmdJQ0FBQnNCQVFBQU5nSUNBQUFzQkVRQUFC
Z0l5QUEKQU1CR1FBQUFnSTJBQUFBQUd3RUJBQUEyQWdJQUFHd0VCQUFBMkFnSUFBQ3dFUkFBQUdB
aklBQUF3RVpBQUFDQWpZQUFBQUFiQVFFQQpBRFlDQWdBQWJBUUVBQURZQ0FnQUFMQVJFQUFBWUNN
Z0FBREFSa0FBQUlDTmdBQUFBQnNCQVFBQU5nSUNBQUJzQkFRQUFOZ0lDQUFBCnNCRVFBQUJnSXlB
QUFNQkdRQUFBZ0kyQUFBQUFHd0VCQUFBMkFnSUFBR3dFQkFBQTJBZ0lBQUN3RVJBQUFHQWpJQUFB
d0VaQUFBQ0EKallBQUFBQWJBUUVBQURZQ0FnQUFiQVFFQUFEWUNBZ0FBTEFSRUFBQVlDTWdBQURB
UmtBQUFJQ05nQUFBQUJzQkFRQUFOZ0lDQUFCcwpCQVFBQU5nSUNBQUFzQkVRQUFCZ0l5QUFBTUJH
UUFBQWdJMkFBQUFBR3dFQkFBQTJBZ0lBQUd3RUJBQUEyQWdJQUFDd0VSQUFBR0FqCklBQUF3RVpB
QUFDQWpZQUFBQUFiQVFFQUFEWUNBZ0FBYkFRRUFBRFlDQWdBQUxBUkVBQUFZQ01nQUFEQVJrQUFB
SUNOZ0FBQUFCc0IKQVFBQU5nSUNBQUJzQkFRQUFOZ0lDQUFBc0JFUUFBQmdJeUFBQU1CR1FBQUFn
STJBQUFBQUd3RUJBQUEyQWdJQUFHd0VCQUFBMkFnSQpBQUN3RVJBQUFHQWpJQUFBd0VaQUFBQ0Fq
WUFBQUFBYkFRRUFBRFlCY0FPZ0NHdUV5bzRBQUFBQVNVVk9SSzVDWUlJPQoKSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9jdXN0b20vZ2V0c3ZnZG9jdW1lbnQtZXhwZWN0ZWQucG5nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
Q2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5
cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL3N2Zy9jdXN0b20vZ2V0c3ZnZG9jdW1lbnQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBZ0FFbEVRVlI0bk96ZGVY
aVUxZjMrOFh0Q3dpYXIKSWJKcVdFUUNndXlLVUVFMlYxRFVJbWdSaGFKUVFDdEtyVnFYTGhLRnFv
Z0xndFlOaGJKWVVRUytJQUZFcklCU3NEOG9XRllSRUFKQgo5cEQ5OC90anlEaVR6QnJDUWN2N2RW
MWNZZVk1YzU1em51Vms3anlieDh4TUFBQUFBT0JBM0psdUFBQUFBSUN6QndFRUFBQUFnRE1FCkVB
QUFBQURPRUVBQUFBQUFPRU1BQVFBQUFPQU1BUVFBQUFDQU13UVFBQUFBQU00UVFBQUFBQUE0UXdB
QkFBQUE0RXlwQnBCang0NXAKNTg2ZElhY2ZPSEJBbXpkdkxzMVpudlZDTGROOSsvWnB5WklsK3VH
SEg4NUFxMzVlamgwN3B0MjdkNWRLWGZuNStmcm1tMjlpL2x4MgpkcmErK09LTFVtbkR6OTJSSTBl
MFk4Y09TZExSbzBlVmxaVlZhblh2MmJOSGUvYnNrWmxKOHU0L0NDOHpNMVBIang5M1B0K1M3a3Mv
Cko3bTV1ZHF3WVlNeU1qSkNsb2xtZkZxOWVyWHk4dkpLdTNsUlllejZFV1BYVDh1WkdydENPWEhp
aEw3OTl0c3ozWXlmaklnQnBGZXYKWHFwZXZicXV1ZVlhM1hycnJTcFRwb3dhTkdpZ1gvN3lsL3JG
TDM2aE1tWEthTXFVS1pvMmJacHExcXlwZDk5OU4yUmRUenp4aFByMAo2Vk9xSFRqYkJWdW1yNzMy
bXFaUG42NWx5NWJwNG9zdlZuWjJ0bS9hM0xsejFhWk5HM2s4SG5YbzBFRUxGeTZVNUEwc3YvLzk3
K1h4CmVCUVhGNmUvL09Vdk9uTGtTTlRyZjg2Y09lclVxWk04SG8vdXVlZWVrTzBkUG55NFBCNlBt
alZycGxtelptbm16SmxxMnJTcFBCNlAKdW5idHFyUzB0S0NmOHkvWHJWczMzWDMzM1JveVpJaHV2
LzEyTlduU1JEZmVlR09KbHQva3laT1ZtSmlvV2JObWxlanovcjc2Nml1MQphdFhLMS85bzI3eHEx
U3ExYTlkT045OTg4eW0zNGVkczkrN2R1dU9PT3pSNjlHaE5tREJCN2R1MzErV1hYNjZ2di81YWtu
ZmJQZi84CjgrWHhlSFRycmJkcXc0WU52czltWm1ZcU5UVlZIbzlIdzRZTlUyWm1wbS9hb1VPSE5H
alFJSFhzMkZHcHFhbWFPSEdpZXZmdXJTNWQKdXFoYnQyNitjdlBtelZQYnRtM2w4WGpVcGswYi9m
clh2OWJJa1NOMTc3MzM2cVdYWGpvcmYzR3NYTGxTOCtiTjA0NGRPelJqeGd4bgo4eTI2THhYMWN4
M0hDdTNZc1VPOWUvZld3SUVEdFhUcFVqMy8vUE5xMzc2OXBrNmRHbEF1bXZGcDY5YXRhdCsrdlJZ
dlhoeDJuckZnCjdJb05ZOWRQejVrYXUwS1pNV09HNnRTcG8rZWZmNzVFbi8rLy8vcy9wYVNreU9Q
eEtEazUyVGZtU2RMKy9mdjEwRU1QeWVQeDZEZS8KK1UzWVAyajhwRmdFVjExMWxXM2J0czMzdW56
NThuYlhYWGY1WGovMzNITTJlZkprTXpOcjJyU3BqUmt6Sm1SZEdSa1p0bW5UcGtpegpMQ1lySzh1
V0xGa1M4K2RLbzQ3U21QZnBWSFNaSGp0MnpNNDU1eHpMejg4M003Ti8vdk9meFQ3ejJtdXZtU1Ni
Tm0xYXNXazFhdFN3ClpzMmErVjdIc3Y1bnpacGxIby9IeXBjdmIvdjM3eTlXOStIRGg2MXUzYm9t
eVo1NTVobmYrNm1wcVNiSkZpNWNHTGF2aGVWV3JGZ1IKOFA2aFE0ZXNYNzkrWVQ4YlRzMmFOVzM4
K1BFbC9yeS9rU05IV3JkdTNYeXZvMjN6czg4K2F6VnIxaXlWTnBTbTA3bjlGNjI3YjkrKwpkdU9O
Ti9wZTUrVGtXTXVXTFczV3JGbSs5MmJQbm0yUzdJa25uaWhXWDBaR2hyVnUzZHEzN1p1WmJkaXd3
WktUazIzZ3dJR1dtWmtaClVQN0ZGMSswYXRXcUJieFh1Rzk4L1BISHZ2ZjI3OTl2dzRjUHQ4VEVS
RnUrZkhuSk8vd1RGbXc5ejV3NU0yQy8yTFJwa3ozNjZLUE8KMmxSMFh5cnE1enFPclYrLzNpcFZx
bVF2dmZSU3dQczdkKzYwK3ZYcjI2aFJvd0xlajJaOCt2TExMeTAzTnpkc21VaUtiZ09NWGRIWAp6
ZGgxNXZ3VXg2NVFPblhxWlBmZWUyK0pQNStlbm03SnljbFdvMFlOTzNEZ1FNQzA4ZVBIMjhNUFAz
eXFUWFFxNGhHUUJ4NTRRQTBhCk5BZzVmZWpRb2JyNDRvc2xTUWtKQ2ZKNFBDSExKaVltcW5Ianhz
RkNVTWpQNU9ibTZvNDc3dER5NWNzak5UVmtuZUhxT0Izemp0U2UKMGxSMG1hNWJ0MDQ1T1RtS2kv
T3UybzRkT3hiN1RMVnExUUorRnAzbS8zNHM2Nzk2OWVxNi92cnJsWldWcFVtVEpoVXIrL2JiYjZ0
dgozNzdGNWwzNC82cFZxNGJ1cUYrNW90dFloUW9WOU9LTEw0YjliRGlSdHR0b0ZCUVVTSkxpNCtO
OXkxNkt2czFseTVZOTVUYVV0bGkyCi8xaTM3MkIxZi9QTk45cTVjNmR5YzNNbGVkZkxXMis5RlhB
YVlaOCtmZFN5WlV1OS9QTExBWDhwbEtUcDA2ZnIzbnZ2OVMzLy9QeDgKRFJ3NFVCNlBSNU1tVFZL
RkNoVUN5dDk3NzczRmpoNFdycTh5WmNyNDNxdFJvNFplZWVVVlhYZmRkZXJSbzRkV3JGZ1JVMTkv
Nm9LdAppNzE3OStxWlo1N1IvZmZmNzN1dmNlUEd5cy9QMTd4NTh5TFdlU3FuQTRYYWw0cjZPWTVq
T1RrNSt0V3ZmcVdVbEJTTkhEa3lZRnE5CmV2VTBac3dZalI4L1B1Q3ZtOUdNVCszYnQxZDhmSHpZ
TXVFRTJ3WVl1Nkt2bTdIcnpEZ2RZOWZwVks1Y3VWUGFWODQ3N3p4OThNRUgKT25Ma1NNRDQ4ZDEz
MytuVFR6L1YwMDgvWFJyTmRDWmlBTG42NnF2RFRqL25uSFBVcVZNbjMrdUNnZ0k5OGNRVHV1Q0ND
OVM4ZVhOdAozNzVka3ZmOHhYSGp4dW55eXkvM2xaMHhZNFplZmZWVmpSczNMdWdYWlVsNjRZVVhO
R2ZPSEgzNDRZZTY4ODQ3ZGZ6NGNhV25wK3VCCkJ4NVFseTVkMUxadFc2MWN1VEpzbmNIcUtPbThq
eDA3cHBFalIrckJCeDlVbno1OWROOTk5K25FaVJNaGwwK28rWVRyUTdocC9vb3UKMDcvOTdXLzY0
eC8vcUx5OFBJMFlNVUtqUjQ4TzJhNW94YnIrdTNmdnJoWXRXdWlWVjE1UlRrNk83MzB6MDV3NWMz
VFRUVGVkY3B1SwpldWloaDNUZWVlZEprclpzMmFLSEhucElEenp3Z0Q3KytHTzFidDFhN2RxMTA0
b1ZLN1J1M1RyOThwZS9WTzNhdFpXYW1ocFFSMlptCnBrYVBIcTJhTld1cWJkdTIycmh4bzI5YXVQ
V1JtWm1wNGNPSDY2bW5udEt3WWNPMGV2WHFtTnNjVEtoNWxxUi9vZXBhdW5TcCt2ZnYKcjlHalIr
dU5OOTVRbzBhTmxKS1M0dHRuZzIzL1JXVm1abXJreUpINnkxLytvcXV1dWtyOSsvZlgyTEZqZmI4
UVFzMDdXTjM5Ky9mWAptalZyMUxOblQ2V25wMHVTV3JkdVhleFVtSHZ2dlZjLy9QQ0RwazJiRnZE
K1J4OTlwRi8rOHBlKzEvUG56OWZxMWFzMVlNQ0FZci9BCkM3MzExbHNoMTBGUjQ4YU5VM1oydG1i
UG51MTdMOUo0Y09MRUNmM2hEMy9RMkxGajFhOWZQejM3N0xPU3ZPTkMzYnAxOWRKTEwwbnkKZmdG
cDBxU0poZzBiSnVuTXIrZkhIMzg4NkdrMXQ5MTJteDUrK0dIbDUrY0hYVWFMRnkvVzJMRmo5Znp6
ejZ0VHAwNWF2MzU5VkcyUQpTcjR2UmVPbk1vNzk2MS8vMHIvLy9lK1FweUwzN3QxYmt2VG1tMjhH
dkI5cWZNckx5OU9jT1hOMHd3MDM2Sk5QUHBFVWZyd0t0VDFHCnM2OFhZdXhpN1BwZkc3cysrT0FE
SlNVbDZhYWJidEtoUTRmMDl0dHZLeWtwU1QxNzl0U1dMVnNrU2M4Ly83eXV1T0lLMzNVOTRaYmYK
bWpWck5IVG9VRDMyMkdNYU0yYU1rcEtTOU9XWFh3Yk1jKzNhdFdyZnZyMGVmUEJCMzZsNjBXalRw
bzErLy92ZjYrOS8vN3YrOFk5LwpTSkpHalJybFd6Lyt3clV4MG5wMEl0WkRKa1VQWGZ1NzVKSkxy
R1hMbHBhV2xtWTdkKzYwbEpRVUd6SmtpSm1aN2R1M3o0WU5HMlkxCmF0UXdNN1BjM0Z4cjE2NmQ3
N09qUm8wS09Qem9yMzc5K3BhYW1tcG1abmw1ZVhidHRkZmFrU05ITEQ4LzM0WU9IV3BKU1VsMjhP
REIKc0hYNjExSFNlWnVaZGU3YzJhWk1tV0ptM3NPc2wxNTZxZlhxMVN2b1owUE5KMXdmd2swcnF1
Z3lOZk1lZW95TGl3dmFIdjh5a3V6NQo1NSszbFN0WEJ2eXJWNitlZGV6WU1lUm53NjMvdExRMGUr
R0ZGK3lOTjk0d1NmYjIyMi83cGkxY3VOQlNVMVB0aXkrK01FazJhZElrCjM3U0pFeWVhSkZ1NWNt
WFlkaGVXZStLSkoyektsQ24yNXB0djJvZ1JJNnhObXphK01sdTJiTEhXclZ0Ymd3WU43UDMzMzdm
TXpFenIKMjdldlhYamhoWmFhbW1vWkdSbjI1Sk5QbXNmanNSOSsrTUhNek9yVnEyY1hYM3l4elpr
eng1WXNXV0wxNjllM2hnMGJXbTV1YnNUMQpjZjMxMTl2MDZkUE56Q3cvUDkvcTFLbGpQWHYyaktu
Tlp0NUQ2clZxMVRLejhOdDRyUDBMVjlmZXZYdnRvb3N1c3BTVUZQdjQ0NC90CjIyKy90U1pObXRq
ZGQ5L3RhMWZSN2Irb2wxNTZ5UjU4OEVFek0xdTNicDFKc3JGang5cTMzMzRiY2RrVnJmdnc0Y04y
NVpWWG1pU3IKVWFPR3paa3pKK2c4TXpNejdkeHp6N1hXclZ2NzN0dTJiWnNOSERnd29GemhLU1N2
di81NnNUcSsrKzQ3MjdKbGkrOWY0U2tPaGZ2RwovUG56Zzg0N01USFJPblRvNEhzZGFUeTQ1cHBy
Zktld3JGNjkyaVRadi83MUx6TXpxMXUzYnNBcHExZGRkWlgxN2R2WHpHTGZqa3Q3ClBWZXRXalhn
Vkk1Q09UazVscENRWUt0V3JTbzJMVHM3MityV3JlczdIZUtQZi95ajNYTExMV1ptVWJVaDByNVUx
TTl4SEh2OTlkZUwKMVZsVWxTcFY3T0tMTC9hOURqYytIVDE2MU5MUzBuemJiS1I5THR6MldIUWJZ
T3hpN0RwYnhpNHpzelp0MnRqZ3dZTjlyNis4OGtvYgpOR2lRNy9XOGVmUHNyYmZlaW1yNXJWaXh3
cXBYcjI2dFdyV3k5OTkvMzRZT0hXcWJObTJ5YnQyNjJYMzMzV2RtWnBNbVRiSjMzbmtuCmFGc2l5
Y3JLc2laTm1saFNVcEk5OTl4ejl2VFRUd2N0RjJrZGgxdVBMcFQ2YlhoNzllcWw3dDI3cTE2OWV1
cmF0YXZ2TGlaSlNVbHEKMGFLRjczRG5vVU9IOVBYWFgydisvUG1TcEx2dnZqdnNvZERDdzFZelo4
NlVtV241OHVWYXNHQ0JhdGV1cmYzNzkrdXp6ejZMV0dkaApIU1dkOTRJRkMvVDU1NStyZi8vK2ty
eUhXUWNQSHF5NWMrY0dQYlFaYWo3aCtoQnVXbEZGbDJtc1B2MzBVMDJiTmkzZzM5R2pSMHRVCmw3
L2JiNzlkU1VsSmV1R0ZGM3p2dmZIR0cyRXY2b3hGUWtLQ3lwWXRxM0xseXFsY3VYSUIweG8xYXFS
V3JWcnA0b3N2MWkyMzNLSUsKRlNxb1Q1OCsyckZqaHg1NTVCRWxKaWJxL3Z2dmw1bjU3bFlpU1FN
SERsVHYzcjNWdFd0WFBmUE1NOXEyYlp2UzB0TENybytWSzFkcQovdno1dnIrdXhzWEY2YnJycm91
NXpVV0ZtMmVzL1F0WFY4MmFOZFdvVVNPMWFORkN2WHIxVW5KeXNycDE2NmIvL3ZlL0FlMEpkOGo0
CjNYZmZWV0ppb2lTcGVmUG1Ta3BLa2lRbEp5ZEh0UzM3MTEybFNoVjk4c2tuZXVTUlIzVHc0RUgx
NmROSEV5ZE9MRGJQQ2hVcWFNaVEKSVZxN2RxM3ZMMlYvLy92ZmRkZGRkd1dVMjdObmp5UUYvV3Z0
dG0zYjFLOWZQMTE0NFlVYU4yNWN3Ris1dzZsVnE1YnZMMktSeG9NbApTNVpvN2RxMXV1eXl5eVJK
YmR1MjFhUkprNVNjbk96cmgzLy9LMWFzNkh0OUp0Znp2bjM3ZFBqdzRhRExMU0VoUWRXclY5ZW1U
WnVDClRydjU1cHZWc21WTFNkN1RRd3YvVWgrcERiSHNTMFg5bk1heGZmdjJTZkp1NjZGVXFWSkYr
L2Z2RDNndjFQaFVxVklsWFhIRkZaSVUKOFhkTHBPMVJDcjZ2TTNZeGR2MnZqMTJTTkdqUUlDMWN1
TkIzQ21pUEhqMzA4Y2NmKzA0blRVdEw4NTE2R1duNWRlalFRU2twS1dyYQp0S2x1dWVVV1RabzBL
ZUJVK1VtVEppa3hNVkVEQnc2TWF0MFZWYTVjT1UyZVBGbjc5Ky9YRzIrOEVmUnNsMmkrcjRaYmp5
NlVlZ0R4CmIzejE2dFYxN05peGdHbUYwMnZVcUtHYmI3NVp2WHYzMW9nUkkxUy9mdjJBY3hkRDFi
dGl4UW9sSmlhcWJObXlLbHUyckRwMTZxUkYKaXhhcGJkdTJFZXM4MVhsLytlV1hTa3BLVWtKQ2dt
L2FwWmRlS3NsN09LMm9VUE1KMTRkdzAwSzFyYVFiekxCaHd6Umh3b1NBZjRXRAo4S2tvWDc2OGhn
MGJwcSsvL2xwTGx5N1Y5dTNiVmJWcVZkOWdmNnA2OXV5cGZ2MzY2ZmJiYjlkenp6Mm56cDA3QjB3
dnVqd3FWNjRjCjhMcndsNy8vTDNuLzg3WTdkT2dnU2RxOGVYUFk5ZkhwcDU4cUpTVWw0RHp3U3BV
cUJWMGZrZHJzTDlJMkVFdi9vcW5Mdjc3S2xTc1gKdTNWa3VPMnJjdVhLQWVHN1ZxMWF2bDlhMFd6
TFJldE9TRWhRYW1xcUZpOWVyS1NrSkkwWU1TTG9IWUNHRHgrdXVMZzQzeS81Zi83egpuN3J5eWlz
RHlseDAwVVdTRlBRV3BsMjZkUEVkcGg4K2ZIakU2NDhrNytrdVc3WnNVZlBtelNWRkhnOCsrK3d6
ZGV6WU1hQ1BRNGNPCmpYby9PRlByZWR1MmJaS2tjODg5TjJpN0tsZXVIUFRXM3g2UFJ5KysrS0lP
SFRxa3NXUEhhdG15WlFGQklGd2JZdG1YaXZvNWpXTVgKWG5paEpPOTU2c0dZbWRMVDA0dGRLeGxx
ZkpKK1hHOGVqeWZzZGhETjlzall4ZGgxTm81ZGt2Y1VyZjM3OS90T3dWdS9mcjJPSHordQp4WXNY
S3lzclN3VUZCVHJubkhNa1JmZGRzRUtGQ2tISG9mbno1MnZNbURFUlR3dU5wRXVYTGlwZnZyeWFO
MjhlOVBxdldMK3ZuZ2tsCnYycXRGRXliTmsxMTZ0VFJoQWtUdEdiTkdpMWN1RERzWDRZa0tTTWpR
L0h4OGVyUm84Y3AxVm1TZVdkbVppb2pJMFBIamgxVHBVcVYKSkVrdFdyUlFmSHg4eUhObWc4MG5Y
QjhpOWUvbll2anc0Um83ZHF6R2p4K3ZsSlFValJneDRyVE5hOXk0Y1dHbng4WEZCUXhna2I3VQpK
Q2NucTNMbHlxcGN1WExZOWJGcjE2Nmd0N3VMNWt0VHVEYkh1ZzJFNjkvcDNwNUdqUnFsdSs2NlMr
dldyVk81Y3VWVXNXSkZkZW5TCkplWjVmL3Z0dDBwTVRQVDlvdXJTcFlzKytPQURkZXJVU2JObXpm
TDk1YWxRY25LeWJyamhCczJjT1ZOMzNubW4yclZyVjJ5NXQyalIKUXBLSy9iV3NVUFhxMVNYSnR5
OUhzbW5USm1WblovdCtNVVlhRDlMVDAzM1hRSlFHVit1NThKZW0vKzI3L2VYbTVxcGl4WXBCcDAy
ZQpQRm1mZi82NTNuenpUZjN0YjM4cmR0NXpLS2V5TDUxT3BUMk9GVjdvSHVwNVdmdjI3Vk51YnE2
YU5Xc1dzZzcvOGFtb2NOdEJhVzJQCmpGMkJHTHNpK3ptTVhZbUppZXJWcTVlbVRwMnFhdFdxcVYy
N2RvcUxpOVAwNmROMStQRGhnT3UyU3ZKZHNOQVZWMXloWmN1VzZmNzcKNzljYmI3eFJrbTVHNVZU
YTZNb1pleEw2M3IxN3RXL2ZQbzBmUDE0TEZpelF1blhyTkgzNjlKRGxDemZZQmcwYWFOR2lSUUVK
Mk16MAo2YWVmUnF5enNJNlN6anNsSlVYNStmbjY2cXV2Zk5QMjdkdW52THc4TlczYU5PbytodXRE
dUdrL2RRVUZCYjdEbDdWcTFWSy9mdjAwCmQrNWNiZHk0MFhkYVJxeDI3OTVkN0lMTW9oSVNFclI3
OTI2OTk5NTdKWnBIVWQ5Ly83Mk9IajJxMXExYmgxMGZkZXJVMGY3OSswTWUKMGkxcG0wdHpHeWlO
dXNKOUNienV1dXQwOTkxM2E4R0NCVnE5ZXJXV0xsMGEwN3dMNjA1UFQ5ZUVDUk1DNnU3WXNhUHEx
NjhmOHN2YQp2ZmZlcSt6c2JOMXh4eDFCRDJWZmNjVVY2dFNwazk1NTV4MGRQSGd3cXI2R1ltWjY3
TEhIZE41NTUrbkJCeCtVRkhrOFNFNU8xdWJOCm03VjE2OWFBZXZ6LytsUzR2NXlxMGx6UERSbzBV
UG55NVhYNDhPR2c1ZExUMDFXL2Z2MWk3Mi9Zc0VIRGh3L1hzODgrRy9CWHQyaWMKeXI1VTJrN25P
SGJ4eFJmcjJtdXYxY3laTTRPdSt4a3paaWdoSVVIMzNYZGZ5THI4eDZlaXdtMEgwV3lQMFFRK3hx
N0F1aG03VHMxUApZZXdxZE5kZGQybldyRmw2L2ZYWE5XVElFQTBhTkVpelo4OVdXbHFhTDV4S3NY
OFg5RmU1Y21XOSsrNjdldWVkZDN3WGtaOE8wYmF4CnROWmpTY1FVUUFvS0NwU1RreFB5NmRxWm1a
a0J0NWM3Y2VKRXdGMFZNak16ZGVMRUNabVpEaHc0NEhzNHpGVlhYYVViYjd3eFpKcXYKVnEyYWR1
M2FKY2w3alVsNmVycUdEaDJxZ3djUGF0KytmZnJ6bi8rc3hvMGJoNjNUdjQ1dDI3YVZhTjQ5ZXZS
UXZYcjF0R2pSSXQvMAoxYXRYS3lVbFJkZGNjMDJ4ejRacXo2OSs5YXVRZlFnM0xkUXlMMXlta3Zk
SnJBVUZCY1Z1OCtldmNKMEVHOWl5c3JKQ0RuaVIxdjhQClAvemdPOGRaa3U4OFQvL3pXd3VuKzgr
ajhQOUZkNFRzN0d6ZGM4ODl2bCswaGVXS252T2FuWjJ0WWNPRytRNWI1K2JtQnR6cElqczcKVy9u
NStiNWJKQmFlMCtrL1AvL3lTNVlzOGQweU1kejY2TmV2bitMajR3TnUxZm5OTjk4b0l5UERWMSsw
YmM3SnlmRzFMOUkyRUV2LwpJdFdWazVNVHNCd3lNek1ENnZiZi9nOGVQS2pzN0d5bHBxYjYzdnZU
bi82a2l5NjZTUGZkZDU5dXYvMzJnRHUyUkpxM2Y5M25ubnV1CnhvOGZIL0FGZE8vZXZkcTFhMWZJ
YXdHNmRldW1aczJhcVhIanhtclVxRkd4NlhGeGNYcm5uWGRVVUZDZ0lVT0dGTHN1SU5oZnlRclgK
bC84eTJMNTl1MGFOR3FXNWMrZnF2ZmZlVSszYXRTVkpmZnYyRFRzZTlPdlhUK1hMbDllZ1FZTzBj
ZU5HYmR5NFVRODk5SkRPUC85OApTZDYvUnExYXRVbzVPVG42L3Z2dnRYWHIxb0NuRzUrcDlYejQ4
R0ZkY3NrbFFjUEFnUU1IbEp1YnEvYnQyeGVidG5IalJoVVVGR2pECmhnM0t6OC9Yc21YTGxKV1ZK
VE9UbVlWdFF6VDdVbEUvMTNGcy9Qanh5c2pJMEN1dnZCSlFidGV1WFhyKytlZjErOS8vM25lcVRL
RlEKNDFOUmtjYXJjTnRqMFgyZHNZdXg2MndadXdwZGUrMjFLbGV1bk1xVUthT3FWYXVxVzdkdXFs
S2xpbXJYcmgwUVppTXR2OEkrRnIxRAphbDVlbnN4TUhUdDIxTU1QUDZ4Zi8vclh2dXVrQzVlVC96
WWFUbjUrdm5KeWNnS1d1NzlvMmhocFBaNTIwVjZ0dm43OWVoczZkS2hKCnNxcFZxOXB6enoxbmh3
OGY5azEvLy8zM0xTNHV6cG8xYTJacjE2NjFOV3ZXV05PbVRTMCtQdDdtekpsanExYXRzc3N2djl3
azJmangKNDIzdDJyWFdxRkVqbXp4NXNuMzAwVWMyZlBqd2tBOVNldlRSUjgzajhkamd3WU10UFQz
ZFhuMzFWU3RYcnB4NVBCNUxTa3F5MmJObgorOW9ZcWs3L09wWXRXMWJpZWE5WnM4YWFOV3RtZi8z
clgyMysvUG5XdjM5LzI3aHhZOGhsRm1vK29mb1FhWnEvb3N0MCtmTGxkc1VWClY1Z2tHejE2dEcz
ZHVyWFlaK2JPbld2dDI3YzNTZGFoUXdmNzVKTlB6TXo3Z0p0SEgzM1VKSm5INDdHbm5ub3FZUDFH
V3YvdnZmZWUKTld2V3pHclhybTJ2dnZxcTcvMEJBd1pZWGw2ZW1aa3RYcnpZdW5UcFlwS3NhZE9t
Tm12V0xKczFhNWFscEtTWUpHdmJ0cTBOSERqUQordlhyWjFkZmZiVWxKaVphVWxLU0ZSUVVCSlJy
M3J5NURSZ3d3QVlNR0dEWFgzKzlKU1VsV1pVcVZTd3ZMODlXckZoaGRlclVzWm8xCmE5clNwVXR0
Ky9idDFxdFhMNU5rVHo3NXBCMDZkTWllZXVvcGsyUzMzbnFyN2RxMXk1NTg4a2xyMGFLRlBmUE1N
L2IwMDAvYmIzLzcKV3p0eTVFaFU2MlBxMUtsV3VYSmxhOXEwcWQxNjY2M1d1M2R2NjlpeG8wMmRP
alhxTnE5YXRjcmF0bTFya216aXhJbVduWjBkY3A0bAo2VitvdXBZdFcyYlZxbFd6T25YcTJJb1ZL
K3pycjcrMkN5KzgwTXFWSytmYkxvcHUveHMyYkRDUHgrTzdlOGY5OTk5dmtreVNsU2xUCnhtcldy
R25EaHcrMzdPenNpTXV1YU4wcEtTbld0V3RYR3pWcWxLV21wbHJMbGkzdG5udnVzWnljbktEYmYy
SDliNzc1WnNqcFptYTcKZCsrMk8rKzgwMUpTVW16WXNHRTJidHc0R3pseXBIWHQydFdlZSs0NTN4
M3c1czJiWjIzYXRERkpkc2tsbDFpL2Z2MnNVNmRPMXJObgpUL3Z0YjM5cm16ZHZMbFozcFBGZzl1
elpscFNVWkpJc09UblpQdi84YzkrMHhZc1hXMkppb2pWczJOQis5N3ZmMmJCaHc2eDc5KzYyClpN
bVNNNzZlNTgyYlovMzc5eS9XMzdmZmZ0djY5T2tUZERrZlAzN2NXclZxWlpVcVZiSkJnd2Jadkhu
enJHTEZpalpnd0FCTFMwdUwKMkladysxSlJQOWR4ck5CMzMzMW4xMTEzbmQxMjIyMzI4c3N2MnlP
UFBHSnQyN2ExOTk1N3IxaGZJNDFQT1RrNUFYYy9DcmZQaGRzZQovYmVCdi8zdGI0eGRqRjFuemRq
bGIvVG8wYlpseXhiZjY4Y2ZmenpnZFRUTGIrclVxWGJPT2VkWTdkcTFiY2FNR1dibWZjQnBwVXFW
CnJGR2pSdmJGRjEvWTFxMWJyV0xGaWxhN2RtMTcrZVdYemN5S2JhT2hyRjI3MWg1NDRBR1RaQlVx
VkxDeFk4ZmE5OTkvSDFNYnpjS3YKUnhkaXZnMXZhU25jY1E0ZVBHakhqaDJMV0w3b0UybXpzN050
eTVZdEFjRWhVcDJGZFp6cXZBc0tDbXpUcGsxQk4wcC9rZVlUckEvUgpUTVBwc1dmUG5wRExPOXo2
eU12TDgyMGpKMDZjS0xYMmxPWTJjQ3AxRmQzKzkrM2I1L3QvYW1xcWJkcTB5ZjdmLy90LzlzOS8v
dFBtCnpadG5kOTU1cHkxYXRDaXFlZnZYWGZoazErUEhqOXY2OWVzRHZtU0ZrcFdWWlZsWldWSDFJ
ejgvMzdadDIyYmZmUE9ONzh0a2FZZzAKSGhRVUZOamV2WHVEVHN2T3p2YmRSalBjbDVWb2xlWjZ2
dTY2NjJ6SGpoMEI3OTF3d3czMm4vLzhKMnc5L2s5dGpyVlBwMnRmK3FuSwp6czYyOWV2WFczcDZl
c1N5b2NhbjdPeHNrMlJmZnZsbHdIdWh0b053MjJPd0o3K1hCR01YWTFlc2ZncGpsNWtWV3lmaDFs
RzAzd1ZqCjRiK05sb1pJYlN6dDlSZ0xqOWxwZWtRM2dQOXByNzMybW1iT25LbTB0TFNBOXhjdVhL
aEdqUnI1N3ZpRG42ZmR1M2ZycWFlZTB2angKNDFXK2ZIazk5dGhqNnRtelo4QzUwRGp6amh3NW9t
clZxdW5Ja1NOUlg1Ujh0bVBzK3QvRzJQWHpRQUFCVUNMcjFxMVQrL2J0MWJ0MwpiN1Z0MjFZblRw
eFFlbnE2ZXZYcXBWNjllcDNwNXFFVTdONjlXNTk4OG9rYU5XcWtzbVhMK200Qml6T3ZlL2Z1dXZ6
eXk5V2tTUk45Ci92bm5tang1OHBsdTBzOEdZOWYvUHNhdW56NENDSUFTTzN6NHNENzc3RFB0M2J0
WFhidDI1UytIZ0NQcjFxMVRXbHFhbWpWcnB1N2QKdXdkOUZnQkNZK3dDeml3Q0NBQUFBQUJuenRo
elFBQUFBQUNjZlU0cGdCdzdkaXprZzNaS1EzWjJ0cjc0NG91UTAvUHo4d1B1b1h5bQpIRGx5UkR0
MjdKQWtIVDE2Tk9DQk9xZHF6NTQ5MnJObmorOTFxSHZYeDFvMmttajZkRHI3TFhudjI3MTU4K1pT
clRPVTA3MHRuYTYrCkhEdDJUTHQzN3k3Ulp5UHRYNmRicFBIRDVmb0hBQUR1bERpQVRKczJUVFZy
MXRTNzc3NWJtdTN4V2JWcWxkcTFhNmViYjc0NTZQU3YKdnZwS3JWcTEwajMzM0hOYTVoK04zYnQz
NjQ0Nzd0RG8wYU0xWWNJRXRXL2ZYcGRmZnJtKy92cHJTZEtISDM2b05tM2F5T1B4cUVPSApEcG83
ZDY3dnM5OTg4NDF1dmZWV2VUd2UvZVkzdjlIZXZYdDkwdzRlUEtoQmd3YXBjK2ZPZXVhWlp6Umh3
Z1QxNk5GRDNicDFLN1k4Cm9pazdjK1pNTlczYVZCNlBSOTI2ZGRQZGQ5K3RJVU9HNlBiYmIxZVRK
azEwNDQwM1J0Mm5hTXVVaGllZWVFSjkrdlFwMVRxRGNiRXQKblk2K1RKNDhXWW1KaVpvMWExYk1u
NDIwZjUxdTBZd2ZydFkvQUFCdzdGVHU0ZHUwYVZNYk0yYk1xZDRLT0tSbm4zM1dhdGFzR1hMNgp5
SkVqclZ1M2JxZHQvcEgwN2R2WGJyenhSdC9ybkp3Y2E5bXlwYzJhTmN2MzN1VEprMDFTMElkcDVl
Ym1XcDA2ZFFMZTI3QmhnOVd0Clc5Y0dEaHpvZXlDU21mZGV6ZzgvL0xCZGRORkZKU3FibXBwcWtt
ekZpaFVCOHp0MDZKRDE2OWN2cGo1RlU2WTBaR1JrMktaTm02SXUKbjVXVlZlSUg2RVRhbGs2bGJy
UFkreEt0bWpWcjJ2ang0MHYwMlVqN1Yya3J1Z3dqalIrbmE1a0JBSUF6SzZZaklGYmtldldFaElT
QQp4OU9YdHJKbHl3YXR2NkNnUUpJVUh4K3Z1TGpJWFNqYTd0THl6VGZmYU9mT25jck56WlhrWFI1
dnZmVld3S2xQMWF0WEQvanBMejQrClhxMWF0Zks5enMvUDE4Q0JBeFVYRjZmSmt5ZXJiTm15dm1r
ZWowZGp4b3pSUlJkZEZITlpTYXBXclpwdm1yOEtGU3JveFJkZmpLbFAKMFpRSko5cjFrWmlZcU1h
TkcwZFZOamMzVjNmY2NZZVdMMThlVmZsQzBXeExKYTNiWHl4OWljV3A3SU9oOXEvVElkZ3lqTlQy
VU12cwpkTzNQQUFEQWphZ0N5SXdaTS9UcXE2OXEzTGh4NnRpeFk4QzBnb0lDUGZIRUU3cmdnZ3ZV
dkhsemJkKyszVGZ0MkxGakdqbHlwQjU4CjhFSDE2ZE5IOTkxM24wNmNPT0dyczI3ZHVucnBwWmNr
U1ZYbk10a0FBQ0FBU1VSQlZOT25UMWVUSmswMGJOaXdrTzNJek16VThPSEQKOWRSVFQybllzR0Zh
dlhwMWlkcWRucDZ1Qng1NFFGMjZkRkhidG0yMWN1WEtxS1lWMWI5L2Y2MVpzMFk5ZS9aVWVucTZK
S2wxNjlZeApuY3JqLzZYM2swOCswZXJWcXpWNDhHQ1ZMMTgrYU5rcFU2YkVYRGFjaHg1NlNPZWRk
MTVNZllxMTMybHBhYnJ0dHR2MCtPT1A2K0dICkgxYnQyclYxd1FVWCtCNEN0V2JOR2cwZE9sU1BQ
ZmFZeG93Wm82U2tKTTJmUDEvanhvM1Q1WmRmTGtsYXVuU3ArdmZ2cjlHalIrdU4KTjk1UW8wYU5s
SktTNHR2ZVhuamhCYzJaTTBjZmZ2aWg3cnp6VGgwL2ZqenN1b3hsV3lwYTk3UnAwNVNVbEtTYmJy
cEpodzRkMHR0dgp2NjJrcENUMTdObFRXN1pza1NROS8venp1dUtLSzVTVmxhVTllL1lFOUVXU1Rw
dzRvVC84NFE4YU8zYXMrdlhycDJlZmZkWTNMWlp0CnNMQXZvMGVQVnMyYU5kVzJiVnR0M0xpeFJI
V0YyMTgvK09DRG1Qb2NhUmtlUDM1Y1V1anhJOWd5QzdVLy8rVXZmMUg3OXUzRExpTUEKQVBBVEV1
a1FTVzV1cnJWcjE4NzNldFNvVVphZm4yOW1acGRjY29tMWJOblMwdExTYk9mT25aYVNrbUpEaGd6
eGxlM2N1Yk5ObVRMRgp6THluNlZ4NjZhWFdxMWN2My9TNmRlc0duSUp4MVZWWFdkKytmWDJ2WDN6
eFJhdFZxNWJ2OWZYWFgyL1RwMDgzTTdQOC9IeXJVNmVPCjllelpNNloyNStYbDJiWFhYbXRIamh5
eC9QeDhHenAwcUNVbEpkbkJnd2ZEVGd2bThPSERkdVdWVjVva3ExR2poczJaTTZkWW1aa3oKWjVv
a216OS9mdEE2L0pmSFgvLzZWNU5rNzd6elR0Q3kvbUlwYTJZMmNlSkVrMlJQUFBHRVRaa3l4ZDU4
ODAwYk1XS0V0V25USnVZKwpSVlBHMy9idDIrMjg4ODZ6QmcwYTJQTGx5MjNac21YV3NtVkxPLy84
ODgzTWJNV0tGVmE5ZW5WcjFhcVZ2Zi8rK3paMDZGQmJ1WEtsCkRSczJ6R3JVcUdGbVpudjM3cldM
THJySVVsSlM3T09QUDdadnYvM1dtalJwWW5mZmZiZHZQdlhyMTdmVTFGUXpzNGpyTXBadHFXamQK
Wm1adDJyU3h3WU1IKzE1ZmVlV1ZObWpRSU4vcmVmUG0yVnR2dldWbVp2djI3UXZvaTVuWk5kZGM0
enNkYnZYcTFTYkovdld2ZjhXOApEZGFyVjg4dXZ2aGltek5uamkxWnNzVHExNjl2RFJzMnROemMz
SWgxRmQyL0l1MnZzZlE1bW1VWWJ2d291c3pDalVPdnZQSkt3Q21CCkFBRGdweTNpRVpCRGh3N3A2
NisvMXZ6NTh5VkpkOTk5ZDhBcEVMMTY5VkwzN3QxVnIxNDlkZTNhMVhjbm9RVUxGdWp6eno5WC8v
NzkKSlhsUHR4ZzhlTERtenAyckZTdFdTUEtlL3VOL0NrYkZpaFZEbnBLeGN1Vkt6WjgvWDFkZmZi
VWs3MS80cjd2dXVwamJQWFBtVEptWgpsaTlmcmdVTEZxaDI3ZHJhdjMrL1B2dnNzN0RUZ3FsU3BZ
bysrZVFUUGZMSUl6cDQ4S0Q2OU9tamlSTW5SbHFrSVJYZXphaEdqUnFsCld0WmZRa0tDeXBZdHEz
TGx5cWxjdVhMRnBrZlRwMWo3WGI5K2ZaMS8vdm02NFlZYjlJdGYvRUtkTzNmVzlPblR0WFBuVG0z
Y3VGRWQKT25SUVNrcUttalp0cWx0dXVVV1RKazNTWlpkZHBoWXRXdmkydFpvMWE2cFJvMFpxMGFL
RmV2WHFwZVRrWkhYcjFrMy8vZTkvQStaVgp1UDJFVzVleGJrdEY2NWFrUVlNR2FlSENoYjVUdUhy
MDZLR1BQLzVZZVhsNWtyeEhmZnIyN1N0SlNrcEtDdWpMa2lWTHRIYnRXbDEyCjJXV1NwTFp0MjJy
U3BFbEtUazZPZVJ1VXBJRURCNnAzNzk3cTJyV3Jubm5tR1czYnRrMXBhV2t4MVJYTi9ocExuNk5a
aGxMbzhhUG8KTWdzM0RnMGZQbHdmZnZoaDJQa0NBSUNmam9nQnBFYU5HcnI1NXB2VnUzZHZqUmd4
UXZYcjExZVpNbVY4MC8yL1VGU3ZYbDNIamgyVApKSDM1NVpkS1NrcFNRa0tDYi9xbGwxNHFTVnE3
ZG0zTURmMzAwMCtWa3BMaXU1WkJraXBWcWhReXNJUnE5NG9WSzVTWW1LaXlaY3VxCmJObXk2dFNw
a3hZdFdxUzJiZHVHblJaS1FrS0NVbE5UdFhqeFlpVWxKV25FaUJFbHVpdVI1UDJpTGltcTI2ckdV
dFpmejU0OTFhOWYKUDkxKysrMTY3cm5uMUxsejUySmxvdWxUclAzMmVEd0IyMDFLU29xcVY2L3VP
dzJyUW9VS1NrcEtLdllaLy9WYjlIWGx5cFdMbmU1VApPRDNjdW94MVd5cGF0eVRkZHR0dDJyOS92
KythaHZYcjErdjQ4ZU5hdkhpeHNyS3lWRkJRb0hQT09TZG8yei83N0ROMTdOZ3hvTDZoClE0Y3FN
VEd4Uk50ZzFhcFZmZi92MEtHREpHbno1czB4MVJYTi9ocHJueU10dzZLdi9jZVBvc3NzMGpnRUFB
QitQdUtqS1RSdDJqVFYKcVZOSEV5Wk0wSm8xYTdSdzRVSlZxVklsN0djeU16T1ZrWkdoWThlT3FW
S2xTcEtrRmkxYUtENCszbmYrZHl4MjdkcWxqSXlNWXUrSAorOUlZck4wWkdSbUtqNDlYang0OWlw
VVBONjJvYjcvOVZvbUppYXBjdWJJa3FVdVhMdnJnZ3cvVXFWTW56Wm8xeS9lWDRBc3V1TUJYCmR6
RCtYNkthTldzbVNkcXdZVVBFK2NkU05weHg0OGI1L2g5Tm42THRkelRpNHVJVUh4L1ZKaGl6Y091
eUpOdFNVWW1KaWVyVnE1ZW0KVHAycWF0V3FxVjI3ZG9xTGk5UDA2ZE4xK1BEaHNMZVBUVTlQMS9y
MTYyTnVkelNTazVOVnVYSmxWYTVjT2FhNm90bGZUNlhQcGFFawo0eEFBQVBqcGlYZ0VaTy9ldmRx
M2I1L0dqeCt2QlFzV2FOMjZkWm8rZlhyRWlsTlNVcFNmbjYrdnZ2cks5OTYrZmZ1VWw1ZW5wazJi
Cit0NHJQSjBqa2pwMTZtai8vdjNhdEdsVFZPVkR0YnRCZ3daYXRHaFJ3Ri9PelV5ZmZ2cHAyR2xG
cGFlbmE4S0VDUUh2ZGV6WVVmWHIKMXc5NHVGcUxGaTFVcGt5Wm9BKzUyN0ZqaHkrZ1NGTDM3dDNW
c21WTHZmWFdXenAwNkZEUWZoV2U3aEpMMlhBU0VoSzBlL2R1dmZmZQplMUgxS2RwK1I3SnAweVlk
T0hCQWJkcTBpZm96MFNnTUVlSFdaYXpiVXRHNkM5MTExMTJhTld1V1huLzlkUTBaTWtTREJnM1M3
Tm16CmxaYVdwaTVkdW9Tc0p6azVXWnMzYjliV3JWc0QycloyN2RxWXRzRmd2di8rZXgwOWVsU3RX
N2VPcWE1bzk5ZVM5cmxRU2UrNlZkSngKQ0FBQS9QUkVEQ0FIRGh6UWpCa3pKRWxYWFhXVmJyenhS
dDlmU0RNek01V1ptZWtyZStMRUNkOWRjL3IyN2F0NjllcHAwYUpGdnVtcgpWNjlXU2txS3Jybm1H
a25lTCtlclZxMVNUazZPdnYvK2UyM2R1bFVIRGh6d2xjL0p5ZkhkNnJWZnYzNktqNC9YcEVtVGZO
Ty8rZVliClpXUmtLRDgvUCtwMi8rcFh2MUo2ZXJxR0RoMnFnd2NQYXQrK2ZmcnpuLytzeG8wYmg1
MVdWTU9HRFRWKy9QaUFMN0Y3OSs3VnJsMjcKQXE0bnFGaXhvanAzN3F6MzMzOC80Sy91QlFVRkdq
Tm1qQVlNR09CN0x5NHVUaSsrK0tKeWMzTTFlUEJnSFQxNk5HQ2UyN2R2MSs5Kwo5enZsNWVYRlZG
YnlQckN3Y0puNnk4N08xckJodzNUUlJSZEYxYWRvK3gyTS83cGR1blNwcnJqaUN0OTFFSGw1ZWI1
dHAxQm1acVpPCm5EamhPOWMvSnljbklMQm1abVlHclB0cTFhcHAxNjVka3J6WEZvUmFsN0Z1UzBY
ckxseVcxMTU3cmNxVks2Y3laY3FvYXRXcTZ0YXQKbTZwVXFhTGF0V3NYKzZMdDM1ZCsvZnFwZlBu
eUdqUm9rRFp1M0tpTkd6ZnFvWWNlMHZubm54L1RObGpJdjgxTGxpeFJuejU5MUxKbAp5NGgxK2U5
ZjBleXZzZlk1MGpJTU4zNFVYV2JoeHFIbHk1ZHIvUGp4WWVjTkFBQitRaUpkcGI1Ky9YcHIxS2lS
VFo0ODJUNzY2Q01iClBueTQ1ZWJtMnZ2dnYyOXhjWEhXckZrelc3dDJyYTFaczhhYU5tMXE4Zkh4
dnJzaXJWbXp4cG8xYTJaLy9ldGZiZjc4K2RhL2YzL2IKdUhHanIrN0ZpeGRiWW1LaU5XelkwSDcz
dTkvWnNHSERySHYzN3Jaa3lSSmJ0V3FWdFczYjFpVFp4SWtUTFRzNzI2Wk9uV3FWSzFlMgpwazJi
MnEyMzNtcTllL2UyamgwN0JuM0lYNmgybTVtOSt1cXJWcTVjT2ZONFBKYVVsR1N6WjgvMmZTN2N0
S0pTVWxLc2E5ZXVObXJVCktFdE5UYldXTFZ2YVBmZmNZems1T1FIbGpodzVZcjE3OTdiR2pSdmI0
TUdEYmNTSUVkYW5UeDlidEdoUjBIbzNiZHBrWGJwMHNZWU4KRzlxUUlVTnM5T2pSMXExYk4zdmtr
VWNzS3lzcjVyS3paczJ5bEpRVWsyVE5temUzQVFNRzJJQUJBK3o2NjYrM3BLUWtxMUtsaXVYbAo1
VVhkcDJqNzdhOWR1M2JXcWxVcmUvenh4KzFQZi9xVFhYWFZWYlozNzE0ek01czZkYXFkYzg0NVZy
dDJiWnN4WTRhWm1hMWF0Y291CnYveHlrMlRqeDQrM3RMUTBxMWF0bXRXcFU4ZFdyRmhoWDMvOXRW
MTQ0WVZXcmx3NSsrU1RUOHpNN05GSEh6V1B4Mk9EQncrMjlQVDAKc09zeWxtMHBXTjJGUm84ZWJW
dTJiUEc5ZnZ6eHh3TmVCK3RMZG5hMnpaNDkyNUtTa2t5U0pTY24yK2VmZis0ckg4czIrT1NUVDFx
TApGaTNzbVdlZXNhZWZmdHArKzl2ZjJwRWpSeUxXRld6L2lyUy94dExuU012d2pUZmVDRHQrRkYx
bWE5ZXVEYmsvMzNmZmZWYXJWaTNmCk5nd0FBSDdhUEdiaG4rcFZVRkNndUxnNEhUcDBTQWtKQ1JF
dk1nMFNjTFJseXhiRnhjV3BVYU5HeGFibjVPUW9QejlmRlNwVVVHNXUKYnNCRnNNSGs1K2ZyNE1H
RHFsR2pockt5c29JK0F5T2FkdWZrNUdqbnpwMUtUazR1ZGgxQ3VHbitmdmpoQjUxNzdybkt6TXpV
OXUzYgpkY0VGRi9pdWpRZ21OemRYbXpadFV1M2F0WFh1dWVlRzdhY2taV1ZsYWVQR2pZcVBqMWZq
eG8xRDlqWFdzdUZFMDZkWSt5MUo3ZHUzClYrZk9uZlhuUC85Wm1abVp4UzQ0THkwWkdSa0Jkd1lM
dHk2ajNaWkMxUzE1anlENTMwMnM2T3R3ekV6Nzl1MVR6Wm8xaTAyTGRoc3MKdEhmdlh0V29VU05v
MlZqcWlyUy9TcWZXNTJETE1Ccmg5bWN6VTFaV2xpcFVxQkJ6dlFBQXdMMklBUVFvRFlVQjVMbm5u
anZUVFFFQQpBTUFaRk5XVDBJRlRVVkJRNEx2R0J3QUFBR2Mzam9EZ3RIdm5uWGQ4Rng4M2JOaFF0
OTEyMnhsdUVRQUFBTTRVQWdnQUFBQUFaemdGCkN3QUFBSUF6QkJBQUFBQUF6aEJBQUFBQUFEaERB
QUVBQUFEZ0RBRUVBQUFBZ0RNRUVBQUFBQURPRUVBQUFBQUFPRU1BQVFBQUFPQU0KQVFRQUFBQ0FN
d1FRQUFBQUFNNFFRQUFBQUFBNFF3QUJBQUFBNEF3QkJBQUFBSUF6QkJBQUFBQUF6aEJBQUFBQUFE
Z1RINm1BNTA4ZQpGKzA0cTlpVGRxYWJBQUFBQUp3UkhBRUJBQUFBNEF3QkJBQUFBSUF6QkJBQUFB
QUF6cHg2QU1tU2RPamsvN01sNVo1eWpUODZldkpmCm9jeFNLaHRKTkgwNm5mMEdBQUFBL2tkRnZB
ZzlwQ09TMGs3V1VGYlNkL0orQ2I5QjB2bVNOa3BhSm1tdnBMcVNPa3RxY3ZLeit5VXQKbGJSQlVq
dEpYU1JWUGpudGhLU0ZrbjZRVlB0ay9kOUxzcFAvQnZtMUlacXk2eVY5S2lsRFVuMUo1NTZjbGl0
cGo2UWFrbTZMc2svUgpsZ0VBQUFBUVZNa0R5QUpKK1pKdVB2azZYOUpyOG41Qmw2U21rbzVMbWl2
cE12MFlQaVFwU2RJdGtuWks2dVgzL241SlV5UTFsRFRRCnIzVW1hYkc4b1NiV3NzMGxIVHo1WG5j
RmhvUXNTUi9IMEtkb3l3QUFBQUFJcXVTbllHWEkrNlU3LytUck1wTDZ5SHRVb2xDRklqLzkKbFpG
VXkrOTFnYVRaa2p6eWhoTC9hT1NSMUUxU1lnbktTbEo1djJuKzRpVmRHMk9mb2lrREFBQUFJS2lT
QjVEbThwN0NORVhTc1pQdgoxWmIzbEtwbytRZUNyZktlUHRWYVVrS1FzbkdTYmlwQjJYQVdTYXJr
OXpxYVBwVkd2d0VBQUlDelZNa0R5S1h5WGxPeFE5SkVTZjg5CnhaYnNPL216ZXBneWhVZFNZaW5y
YjdPa2YwdGFLMm1ldk5kditJdW1UNlhkYndBQUFPQXNVdklBVWw3U0haSitJZS9wUjlNbGZYa0sK
TFNtOGcxWEZVaTdyTDA3ZVU2YktLUGpWTDlIMHFiVDdEUUFBQUp4RlR1MDJ2R1VrOVpCMHA3eGhZ
TDZrLzVTd3Jtb25meDROV3lyMgpzdjRheVhzSzFTV1NycGFVSEtSTU5IMHF6WDREQUFBQVo1R1NC
WkNEOGo3N29sQjlTZjFPL3QvL2kzalZrejlEUFpQRC94cVFwSk0vCjkwY3gvMWpLaHRQVDcvL1I5
Q25hZmdNQUFBQUlxbVFCNUxpa2xVWGV1MERlSXhQK3Q2TTlUOTZRa1JHa2prUDZNYUJJVWdOSk5l
VzkKUGlQVUhhWHlTMUEybkRJbjIvdHZSZGVuYVBzTkFBQUFJS2lTQlpEcThuNFI5dzhXUitYOUV0
N1k3NzJ5OHA3bXRFSGVMKytGQ2lSOQpKdStwVVA0dHVmYmt0SThVZUtSQjhoNTlXQ1J2c0lpbHJQ
UmpTQ2thU3ZMa2ZVNUpZcFI5aXJiZkFBQUFBSUx5bUptRkxmQ25vZy9QCk9PbGxlVzloVzB2U09m
SStjYnllcE92a1BiSlFLRnZTUCtUOTBwNHM3OFhmUnlXMWwvZWFqS0lPU0pvajc1ZjZCdkplOUwx
SDNxZXAKWDZuQWk4ZWpLZnNmZVorNm5pSHZFWm5DWjQrY2tMUmIzbER5ZTNsRFRUUjlpcmJmWWRp
VFlSYzVBQUFBOEQrcjVBRWtVOTRMc0hQMAo0K2xVNWNKVWxDOXZZS2lrNk81ZWxTdHZhSWlUZEs2
Q1ArK2pKR1hEaWFaUHNmWTdDQUlJQUFBQXpsYkJia1libmNJUVVWYmVJd3VSCmxJbXlYS0VFZVIv
d1Y5cGx3NG1tVDdIMkd3QUFBSURQcWQyR0Z3QUFBQUJpUUFBQkFBQUE0RXpFYTBBQUFBQUFvTFJ3
QkFRQUFBQ0EKTXdRUUFBQUFBTTRRUUFBQUFBQTRRd0FCQUFBQTRBd0JCQUFBQUlBekJCQUFBQUFB
emhCQUFBQUFBRGhEQUFFQUFBRGdEQUVFQUFBQQpnRE1FRUFBQUFBRE9FRUFBQUFBQU9FTUFBUUFB
QU9BTUFRUUFBQUNBTXdRUUFBQUFBTTRRUUFBQUFBQTRRd0FCQUFBQTRBd0JCQUFBCkFJQXo4WkVL
ZVA3a2NkR09zNG85YVdlNkNRQUFBTUFad1JFUUFBQUFBTTRRUUFBQUFBQTRRd0FCQUFBQTRNeXBC
NUFzU1lkTy9qOWIKVXU0cDEvaWpveWYvRmNvc3BiS1JSTk9uMDlsdkFBQUE0SDlVeEl2UVF6b2lL
ZTFrRFdVbGZTZnZsL0FiSkowdmFhT2taWkwyU3FvcgpxYk9rSmljL3UxL1NVa2tiSkxXVDFFVlM1
WlBUVGtoYUtPa0hTYlZQMXYrOUpEdjViNUJmRzZJcHUxN1NwNUl5Sk5XWGRPN0phYm1TCjlraXFJ
ZW0yS1BzVWJSa0FBQUFBUVpVOGdDeVFsQy9wNXBPdjh5VzlKdThYZEVscUt1bTRwTG1TTHRPUDRV
T1NraVRkSW1tbnBGNSsKNysrWE5FVlNRMGtEL1ZwbmtoYkxHMnBpTGR0YzBzR1Q3M1ZYWUVqSWt2
UnhESDJLdGd3QUFBQ0FvRXArQ2xhR3ZGKzY4MCsrTGlPcApqN3hISlFwVktQTFRYeGxKdGZ4ZUYw
aWFMY2tqYnlqeGowWWVTZDBrSlphZ3JDU1Y5NXZtTDE3U3RUSDJLWm95QUFBQUFJSXFlUUJwCkx1
OHBURk1rSFR2NVhtMTVUNm1LbG44ZzJDcnY2Vk90SlNVRUtSc242YVlTbEExbmthUktmcStqNlZO
cDlCc0FBQUE0UzVVOGdGd3EKN3pVVk95Uk5sUFRmVTJ6SnZwTS9xNGNwVTNna0paYXkvalpMK3Jl
a3RaTG15WHY5aHI5bytsVGEvUVlBQUFET0lpVVBJT1VsM1NIcApGL0tlZmpSZDBwZW4wSkxDTzFo
VkxPV3kvdUxrUFdXcWpJSmYvUkpObjBxNzN3QUFBTUJaNU5SdXcxdEdVZzlKZDhvYkJ1WkwrazhK
CjY2cDI4dWZSc0tWaUwrdXZrYnluVUYwaTZXcEp5VUhLUk5PbjB1dzNBQUFBY0JZcFdRQTVLTyt6
THdyVmw5VHY1UC85djRoWFBma3oKMURNNS9LOEJTVHI1YzM4VTg0K2xiRGc5L2Y0ZlRaK2k3VGNB
QUFDQW9Fb1dRSTVMV2xua3ZRdmtQVExoZnp2YTgrUU5HUmxCNmppawpId09LSkRXUVZGUGU2ek5D
M1ZFcXZ3Umx3eWx6c3IzL1ZuUjlpcmJmQUFBQUFJSXFXUUNwTHU4WGNmOWdjVlRlTCtHTi9kNHJL
KzlwClRodmsvZkplcUVEU1ovS2VDdVhma210UFR2dElnVWNhSk8vUmgwWHlCb3RZeWtvL2hwU2lv
U1JQM3VlVUpFYlpwMmo3RFFBQUFDQW8KajVsWjJBSi9LdnJ3akpOZWx2Y1d0clVrblNQdkU4ZnJT
YnBPM2lNTGhiSWwvVVBlTCszSjhsNzhmVlJTZTNtdnlTanFnS1E1OG42cApieUR2UmQ5NzVIMmEr
cFVLdkhnOG1yTC9rZmVwNnhueUhwRXBmUGJJQ1VtNzVRMGx2NWMzMUVUVHAyajdIWVk5R1hhUkF3
QUFBUCt6ClNoNUFNdVc5QUR0SFA1NU9WUzVNUmZueUJvWktpdTd1VmJueWhvWTRTZWNxK1BNK1Ns
STJuR2o2Rkd1L2d5Q0FBQUFBNEd3VjdHYTAKMFNrTUVXWGxQYklRU1prb3l4VktrUGNCZjZWZE5w
eG8raFJydndFQUFBRDRuTnB0ZUFFQUFBQWdCZ1FRQUFBQUFNNUV2QVlFQUFBQQpBRW9MUjBBQUFB
QUFPRU1BQVFBQUFPQU1BUVFBQUFDQU13UVFBQUFBQU00UVFBQUFBQUE0UXdBQkFBQUE0QXdCQkFB
QUFJQXpCQkFBCkFBQUF6aEJBQUFBQUFEaERBQUVBQUFEZ0RBRUVBQUFBZ0RNRUVBQUFBQURPRUVB
QUFBQUFPRU1BQVFBQUFPQU1BUVFBQUFDQU13UVEKQUFBQUFNNFFRQUFBQUFBNFF3QUJBQUFBNEF3
QkJBQUFBSUF6QkJBQUFBQUF6aEJBQUFBQUFEaERBQUVBQUFEZ0RBRUVBQUFBZ0RNRQpFQUFBQUFE
T0VFQUFBQUFBT0VNQUFRQUFBT0FNQVFRQUFBQ0FNd1FRQUFBQUFNNFFRQUFBQUFBNFF3QUJBQUFB
NEF3QkJBQUFBSUF6CkJCQUFBQUFBemhCQUFBQUFBRGhEQUFFQUFBRGdEQUVFQUFBQWdETUVFQUFB
QUFET0VFQUFBQUFBT0VNQUFRQUFBT0FNQVFRQUFBQ0EKTXdRUUFBQUFBTTRRUUFBQUFBQTRRd0FC
QUFBQTRBd0JCQUFBQUlBekJCQUFBQUFBemhCQUFBQUFBRGhEQUFFQUFBRGdEQUVFQUFBQQpnRE1F
RUFBQUFBRE9FRUFBQUFBQU9FTUFBUUFBQU9BTUFRUUFBQUNBTXdRUUFBQUFBTTRRUUFBQUFBQTRR
d0FCQUFBQTRBd0JCQUFBCkFJQXpCQkFBQUFBQXpoQkFBQUFBQURoREFBRUFBQURnREFFRUFBQUFn
RE1FRUFBQUFBRE9FRUFBQUFBQU9FTUFBUUFBQU9BTUFRUUEKQUFDQU13UVFBQUFBQU00UVFBQUFB
QUE0UXdBQkFBQUE0QXdCQkFBQUFJQXpCQkFBQUFBQXpoQkFBQUFBQURoREFBRUFBQURnREFFRQpB
QUFBZ0RNRUVBQUFBQURPRUVBQUFBQUFPRU1BQVFBQUFPQU1BUVFBQUFDQU13UVFBQUFBQU00UVFB
QUFBQUE0UXdBQkFBQUE0QXdCCkJBQUFBSUF6QkJBQUFBQUF6aEJBQUFBQUFEaERBQUVBQUFEZ0RB
RUVBQUFBZ0RNRUVBQUFBQURPRUVBQUFBQUFPRU1BQVFBQUFPQU0KQVFRQUFBQ0FNd1FRQUFBQUFN
NFFRQUFBQUFBNFF3QUJBQUFBNEF3QkJBQUFBSUF6QkJBQUFBQUF6aEJBQUFBQUFEaERBQUVBQUFE
ZwpEQUVFQUFBQWdETUVFQUFBQUFET0VFQUFBQUFBT0VNQUFRQUFBT0FNQVFRQUFBQ0FNd1FRQUFB
QUFNNFFRQUFBQUFBNFF3QUJBQUFBCjRBd0JCQUFBQUlBekJCQUFBQUFBemhCQUFBQUFBRGhEQUFF
QUFBRGdEQUVFQUFBQWdETUVFQUFBQUFET0VFQUFBQUFBT0VNQUFRQUEKQU9BTUFRUUFBQUNBTXdR
UUFBQUFBTTRRUUFBQUFBQTRRd0FCQUFBQTRBd0JCQUFBQUlBekJCQUFBQUFBemhCQUFBQUFBRGhE
QUFFQQpBQURnREFFRUFBQUFnRE1FRUFBQUFBRE9FRUFBQUFBQU9FTUFBUUFBQU9BTUFRUUFBQUNB
TXdRUUFBQUFBTTRRUUFBQUFBQTRRd0FCCkFBQUE0QXdCQkFBQUFJQXpCQkFBQUFBQXpoQkFBQUFB
QURoREFBRUFBQURnREFFRUFBQUFnRE1FRUFBQUFBRE9FRUFBQUFBQU9FTUEKQVFBQUFPQU1BUVFB
QUFDQU13UVFBQUFBQU00UVFBQUFBQUE0UXdBQkFBQUE0QXdCQkFBQUFJQXpCQkFBQUFBQXpoQkFB
QUFBQURoRApBQUVBQUFEZ0RBRUVBQUFBZ0RNRUVBQUFBQURPRUVBQUFBQUFPRU1BQVFBQUFPQU1B
UVFBQUFDQU13UVFBQUFBQU00UVFBQUFBQUE0ClF3QUJBQUFBNEF3QkJBQUFBSUF6QkJBQUFBQUF6
aEJBQUFBQUFEaERBQUVBQUFEZ0RBRUVBQUFBZ0RNRUVBQUFBQURPRUVBQUFBQUEKT0VNQUFRQUFB
T0FNQVFRQUFBQ0FNd1FRQUFBQUFNNFFRQUFBQUFBNFF3QUJBQUFBNEF3QkJBQUFBSUF6QkJBQUFB
QUF6aEJBQUFBQQpBRGhEQUFFQUFBRGdEQUVFQUFBQWdETUVFQUFBQUFET0VFQUFBQUFBT0VNQUFR
QUFBT0FNQVFRQUFBQ0FNd1FRQUFBQUFNNFFRQUFBCkFBQTRRd0FCQUFBQTRBd0JCQUFBQUlBekJC
QUFBQUFBemhCQUFBQUFBRGhEQUFFQUFBRGdEQUVFQUFBQWdETUVFQUFBQUFET0VFQUEKQUFBQU9F
TUFBUUFBQU9BTUFRUUFBQUNBTXdRUUFBQUFBTTRRUUFBQUFBQTRRd0FCQUFBQTRBd0JCQUFBQUlB
ekJCQUFBQUFBemhCQQpBQUFBQURoREFBRUFBQURnREFFRUFBQUFnRE1FRUFBQUFBRE9FRUFBQUFB
QU9FTUFBUUFBQU9BTUFRUUFBQUNBTXdRUUFBQUFBTTRRClFBQUFBQUE0UXdBQkFBQUE0QXdCQkFB
QUFJQXpCQkFBQUFBQXpoQkFBQUFBQURoREFBRUFBQURnREFFRUFBQUFnRE1FRUFBQUFBRE8KRUVB
QUFBQUFPRU1BQVFBQUFPQU1BUVFBQUFDQU13UVFBQUFBQU00UVFBQUFBQUE0UXdBQkFBQUE0QXdC
QkFBQUFJQXpCQkFBQUFBQQp6aEJBQUFBQUFEaERBQUVBQUFEZ0RBRUVBQUFBZ0RNRUVBQUFBQURP
RUVBQUFBQUFPRU1BQVFBQUFPQU1BUVFBQUFDQU13UVFBQUFBCkFNNFFRQUFBQUFBNFF3QUJBQUFB
NEF3QkJBQUFBSUF6QkJBQUFBQUF6aEJBQUFBQUFEaERBQUVBQUFEZ0RBRUVBQUFBZ0RNRUVBQUEK
QUFET0VFQUFBQUFBT0VNQUFRQUFBT0FNQVFRQUFBQ0FNd1FRQUFBQUFNNFFRQUFBQUFBNFF3QUJB
QUFBNEF3QkJBQUFBSUF6QkJBQQpBQUFBemhCQUFBQUFBRGhEQUFFQUFBRGdEQUVFQUFBQWdETUVF
QUFBQUFET0VFQUFBQUFBT0VNQUFRQUFBT0FNQVFRQUFBQ0FNd1FRCkFBQUFBTTRRUUFBQUFBQTRR
d0FCQUFBQTRBd0JCQUFBQUlBekJCQUFBQUFBemhCQUFBQUFBRGhEQUFFQUFBRGdEQUVFQUFBQWdE
TUUKRUFBQUFBRE9FRUFBQUFBQU9FTUFBUUFBQU9BTUFRUUFBQUNBTXdRUUFBQUFBTTRRUUFBQUFB
QTRRd0FCQUFBQTRBd0JCQUFBQUlBegpCQkFBQUFBQXpoQkFBQUFBQURoREFBRUFBQURnREFFRUFB
QUFnRE1FRUFBQUFBRE9FRUFBQUFBQU9FTUFBUUFBQU9BTUFRUUFBQUNBCk13UVFBQUFBQU00UVFB
QUFBQUE0UXdBQkFBQUE0QXdCQkFBQUFJQXpCQkFBQUFBQXpoQkFBQUFBQURoREFBRUFBQURnREFF
RUFBQUEKZ0RNRUVBQUFBQURPRUVBQUFBQUFPRU1BQVFBQUFPQU1BUVFBQUFDQU13UVFBQUFBQU00
UVFBQUFBQUE0UXdBQkFBQUE0QXdCQkFBQQpBSUF6QkJBQUFBQUF6aEJBQUFBQUFEaERBQUVBQUFE
Z0RBRUVBQUFBZ0RNRUVBQUFBQURPRUVBQUFBQUFPRU1BQVFBQUFPQU1BUVFBCkFBQ0FNd1FRQUFB
QUFNNFFRQUFBQUFBNFF3QUJBQUFBNEF3QkJBQUFBSUF6QkJBQUFBQUF6aEJBQUFBQUFEaERBQUVB
QUFEZ0RBRUUKQUFBQWdETUVFQUFBQUFET0VFQUFBQUFBT0VNQUFRQUFBT0FNQVFRQUFBQ0FNd1FR
QUFBQUFNNFFRQUFBQUFBNFF3QUJBQUFBNEF3QgpCQUFBQUlBekJCQUFBQUFBemhCQUFBQUFBRGhE
QUFFQUFBRGdEQUVFQUFBQWdETUVFQUFBQUFET0VFQUFBQUFBT0VNQUFZRC8zMzRkCkN3QUFBQUFN
OHJlZXhhNnlDQURZQ0FnQUFMQVJFQUFBWUNNZ0FBREFSa0FBQUlDTmdBQUFBQnNCQVFBQU5nSUNB
QUJzQkFRQUFOZ0kKQ0FBQXNCRVFBQUJnSXlBQUFNQkdRQUFBZ0kyQUFBQUFHd0VCQUFBMkFnSUFB
R3dFQkFBQTJBZ0lBQUN3RVJBQUFHQWpJQUFBd0VaQQpBQUNBallBQUFBQWJBUUVBQURZQ0FnQUFi
QVFFQUFEWUNBZ0FBTEFSRUFBQVlDTWdBQURBUmtBQUFJQ05nQUFBQUJzQkFRQUFOZ0lDCkFBQnNC
QVFBQU5nSUNBQUFzQkVRQUFCZ0l5QUFBTUJHUUFBQWdJMkFBQUFBR3dFQkFBQTJBZ0lBQUd3RUJB
QUEyQWdJQUFDd0VSQUEKQUdBaklBQUF3RVpBQUFDQWpZQUFBQUFiQVFFQUFEWUNBZ0FBYkFRRUFB
RFlDQWdBQUxBUkVBQUFZQ01nQUFEQVJrQUFBSUNOZ0FBQQpBQnNCQVFBQU5nSUNBQUJzQkFRQUFO
Z0lDQUFBc0JFUUFBQmdJeUFBQU1CR1FBQUFnSTJBQUFBQUd3RUJBQUEyQWdJQUFHd0VCQUFBCjJB
Z0lBQUN3RVJBQUFHQWpJQUFBd0VaQUFBQ0FwekVsV2dBQUFnRkpSRUZVallBQUFBQWJBUUVBQURZ
Q0FnQUFiQVFFQUFEWUNBZ0EKQUxBUkVBQUFZQ01nQUFEQVJrQUFBSUNOZ0FBQUFCc0JBUUFBTmdJ
Q0FBQnNCQVFBQU5nSUNBQUFzQkVRQUFCZ0l5QUFBTUJHUUFBQQpnSTJBQUFBQUd3RUJBQUEyQWdJ
QUFHd0VCQUFBMkFnSUFBQ3dFUkFBQUdBaklBQUF3RVpBQUFDQWpZQUFBQUFiQVFFQUFEWUNBZ0FB
CmJBUUVBQURZQ0FnQUFMQVJFQUFBWUNNZ0FBREFSa0FBQUlDTmdBQUFBQnNCQVFBQU5nSUNBQUJz
QkFRQUFOZ0lDQUFBc0JFUUFBQmcKSXlBQUFNQkdRQUFBZ0kyQUFBQUFHd0VCQUFBMkFnSUFBR3dF
QkFBQTJBZ0lBQUN3RVJBQUFHQWpJQUFBd0VaQUFBQ0FqWUFBQUFBYgpBUUVBQURZQ0FnQUFiQVFF
QUFEWUNBZ0FBTEFSRUFBQVlDTWdBQURBUmtBQUFJQ05nQUFBQUJzQkFRQUFOZ0lDQUFCc0JBUUFB
TmdJCkNBQUFzQkVRQUFCZ0l5QUFBTUJHUUFBQWdJMkFBQUFBR3dFQkFBQTJBZ0lBQUd3RUJBQUEy
QWdJQUFDd0VSQUFBR0FqSUFBQXdFWkEKQUFDQWpZQUFBQUFiQVFFQUFEWUNBZ0FBYkFRRUFBRFlD
QWdBQUxBUkVBQUFZQ01nQUFEQVJrQUFBSUNOZ0FBQUFCc0JBUUFBTmdJQwpBQUJzQkFRQUFOZ0lD
QUFBc0JFUUFBQmdJeUFBQU1CR1FBQUFnSTJBQUFBQUd3RUJBQUEyQWdJQUFHd0VCQUFBMkFnSUFB
Q3dFUkFBCkFHQWpJQUFBd0VaQUFBQ0FqWUFBQUFBYkFRRUFBRFlDQWdBQWJBTDlnWFJ4V1VxV21R
QUFBQUJKUlU1RXJrSmdnZz09Cgo=
</data>
<flag name="review"
          id="2964"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>