<?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>77853</bug_id>
          
          <creation_ts>2012-02-05 22:54:08 -0800</creation_ts>
          <short_desc>&lt;style scoped&gt;: Allow &lt;style scoped&gt; as a direct child of a ShadowRoot</short_desc>
          <delta_ts>2012-02-15 01:17:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>49142</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Roland Steiner">rolandsteiner</reporter>
          <assigned_to name="Roland Steiner">rolandsteiner</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>koivisto</cc>
    
    <cc>morrita</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>549749</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-05 22:54:08 -0800</bug_when>
    <thetext>Currently, registration of scoped style elements expects an Element parent. For the purposes of shadow DOM, it must also work if it is a child of a ShadowRoot node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550645</commentid>
    <comment_count>1</comment_count>
      <attachid>125771</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-06 23:11:02 -0800</bug_when>
    <thetext>Created attachment 125771
Patch

patch - contains same forwarding as registration code in bug 67790. This was moved more or less verbatim from Element into ContainerNode. See discussion there regarding cleanup (moving into helper class or some such).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550647</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 23:14:03 -0800</bug_when>
    <thetext>Attachment 125771 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1

Source/WebCore/dom/ContainerNode.cpp:1092:  The return type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Total errors found: 1 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550658</commentid>
    <comment_count>3</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-06 23:47:23 -0800</bug_when>
    <thetext>Note: the function the style bot complains about is virtual, so I can&apos;t change the signature (or at least that should be a separate patch). Will try to fix Win build failure in a follow-up patch, provided the general direction of the patch is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551067</commentid>
    <comment_count>4</comment_count>
      <attachid>125771</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-07 09:46:56 -0800</bug_when>
    <thetext>Comment on attachment 125771
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=125771&amp;action=review

&gt; Source/WebCore/html/HTMLStyleElement.cpp:116
&gt; +        ContainerNode* scope = parentNode();

I have an alternative idea, but not sure if it&apos;s better. Instead of adding a new type of rare data, which seems rather high-caliber, we could declare a StyleScope interface, and have both element and ShadowRoot implement it. Since the rare data is just an int, we could just make it a member variable of the ShadowRoot. WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551540</commentid>
    <comment_count>5</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-07 16:31:00 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; I have an alternative idea, but not sure if it&apos;s better. Instead of adding a new type of rare data, which seems rather high-caliber, we could declare a StyleScope interface, and have both element and ShadowRoot implement it. Since the rare data is just an int, we could just make it a member variable of the ShadowRoot. WDYT?

Hm, but how to get from [HTMLStyleElement]-&gt;parentNode() to the StyleScope interface? It seems I&apos;d either need (a) dynamic_cast or (b) have to branch it like &quot;if (parentNode-&gt;isElementNode()) { ... } else if (parentNode-&gt;isShadowRoot()) { ... }&quot;. In the latter case I could just call the respective implementation directly, without going through an interface (?).

Alternatively, (c) I could declare the interface functions virtual on ContainerNode (thus making them directly accessible from parentNode()) and implement them in Element and ShadowRoot. Variant (d) of that: StyleScope could become a super-class of ContainerNode to encapsulate the interface, but implementation would still have to happen in Element &amp; ShadowRoot.

Using ContainerNodeRareData just seemed simpler to me... ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552218</commentid>
    <comment_count>6</comment_count>
      <attachid>125771</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-08 09:51:33 -0800</bug_when>
    <thetext>Comment on attachment 125771
Patch

This seems wrong. Why isn&apos;t ShadowRoot an Element if it is supposed to act like one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552233</commentid>
    <comment_count>7</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-08 10:07:20 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 125771 [details])
&gt; This seems wrong. Why isn&apos;t ShadowRoot an Element if it is supposed to act like one?

Other than this behavior, there&apos;s really nothing about ShadowRoot that makes it look like an Element. It doesn&apos;t receive events, has no attributes, it&apos;s never rendered (so no styles or dimension/position information). Also, it can&apos;t be cloned into another ShadowRoot or appended to a document tree. (more here: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html).

If we were to make it an Element, we&apos;d have to add a larger set of exceptions in handling the specific case of the ShadowRoot, compared to just this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552928</commentid>
    <comment_count>8</comment_count>
      <attachid>126253</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-09 00:46:35 -0800</bug_when>
    <thetext>Created attachment 126253
Patch

patch, should fix Win bot. Still ContainerNodeRareData version: it is the most straightforward, and I wanted to avoid making hasScopedHTMLStyleChild virtual, as it is used rather heavily in &lt;style scoped&gt; CSS code. However, if you still prefer any of the versions (a) to (d) of comment #5 - or &apos;(e) something completely different&apos; - I&apos;m happy to change the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553265</commentid>
    <comment_count>9</comment_count>
      <attachid>126253</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-09 10:12:10 -0800</bug_when>
    <thetext>Comment on attachment 126253
Patch

The patch doesn&apos;t seem to apply. Also -- can we not just reuse NodeRareData? Do we have to introduce the ContainerNodeRareData?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553825</commentid>
    <comment_count>10</comment_count>
      <attachid>126451</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-09 22:06:44 -0800</bug_when>
    <thetext>Created attachment 126451
Patch

Certainly can do! Updated patch, moved registration to Node / NodeRareData as suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553845</commentid>
    <comment_count>11</comment_count>
      <attachid>126456</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-09 22:24:37 -0800</bug_when>
    <thetext>Created attachment 126456
Patch

Same patch as above, missed a small bit of cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554112</commentid>
    <comment_count>12</comment_count>
      <attachid>126456</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-10 09:22:28 -0800</bug_when>
    <thetext>Comment on attachment 126456
Patch

This looks great, but can you please land it by hand? I could be superstitious and old-fashioned, but I&apos;d watch the tree after landing this patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555030</commentid>
    <comment_count>13</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-12 23:04:55 -0800</bug_when>
    <thetext>Will do, once the tree goes back to a sane state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557024</commentid>
    <comment_count>14</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-02-15 01:17:38 -0800</bug_when>
    <thetext>Committed r107793: &lt;http://trac.webkit.org/changeset/107793&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125771</attachid>
            <date>2012-02-06 23:11:02 -0800</date>
            <delta_ts>2012-02-09 00:46:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77853-20120207161100.patch</filename>
            <type>text/plain</type>
            <size>33875</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg1MTUxZWQyNDRkMDY3
M2JhZjI4Nzg0NDhkYWQ3ZmZiZTg5ZDA2Yi4uYTFkNGUyZDE4ODUxZWQ1ZWU3MmJkN2RmNGNmZjdi
MTJmMTI5YzE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAyLTA2ICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHls
ZSBzY29wZWQ+OiBBbGxvdyA8c3R5bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBjaGlsZCBvZiBhIFNo
YWRvd1Jvb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3ODUzCisKKyAgICAgICAgTW92ZWQgcmVnaXN0cmF0aW9uIGNvZGUgZnJvbSBFbGVtZW50IHRv
IENvbnRhaW5lck5vZGUuCisgICAgICAgIFVwZGF0ZWQgSW50ZXJuYWxzIGFuZCBidWlsZCBmaWxl
cyBhY2NvcmRpbmdseS4KKyAgICAgICAgQWRkZWQgbmV3IGNsYXNzIENvbnRhaW5lck5vZGVSYXJl
RGF0YSB0byBob2xkIHJlZ2lzdHJhdGlvbiBjb3VudCBpbnN0ZWFkIG9mIEVsZW1lbnRSYXJlRGF0
YS4KKyAgICAgICAgRm9yd2FyZCB3aWxsUmVtb3ZlKCkgZnJvbSBob3N0IGVsZW1lbnQgaW50byBz
aGFkb3cgRE9NIHRyZWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3JlZ2lzdGVyaW5nLXNoYWRvd3Jv
b3QuaHRtbAorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Y3JlYXRlUmFyZURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6ZW5zdXJlUmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGFpbmVyTm9kZTo6bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVD
aGlsZCk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoQ29udGFpbmVyTm9kZSk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVS
YXJlRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGFpbmVy
Tm9kZVJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGVSYXJlRGF0YTo6
Q29udGFpbmVyTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGVS
YXJlRGF0YTo6fkNvbnRhaW5lck5vZGVSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
YWluZXJOb2RlUmFyZURhdGE6OnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZVJhcmVEYXRhOjp1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0
eWxlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZVJhcmVEYXRhOjpoYXNT
Y29wZWRIVE1MU3R5bGVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlUmFy
ZURhdGE6Om51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4pOgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndpbGxSZW1vdmUpOiBmb3J3
d2FyZCBpbnRvIHNoYWRvdyBET00gdHJlZQorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAg
ICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3QuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdO
b2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6Om51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4pOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMi0wNiAgS2VudGFybyBIYXJhICA8aGFyYWtl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNjg4
My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCBhYzdlZmJjMTM4YmU3MTdhYjcxMzUyMTA4Yzk2ZTNkMzNjZjE0MWI2
Li43YzBlMTk1YzExODg0NGRiZWRjZDMxMmM5ZDNjYzI0MjU5MGZhYjZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMDYgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5l
ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPHN0eWxlIHNjb3BlZD46IEFsbG93IDxzdHlsZSBz
Y29wZWQ+IGFzIGEgZGlyZWN0IGNoaWxkIG9mIGEgU2hhZG93Um9vdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4NTMKKworICAgICAgICBudW1iZXJP
ZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIGdvdCBtb3ZlZCBmcm9tIEVsZW1lbnQgaW50byBDb250
YWluZXJOb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd2luL1dlYktpdDIuZGVmOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoK
KwogMjAxMi0wMi0wNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIE92ZXJsYXkgc2Nyb2xsYmFycyBmbGFzaCB3aGVuIHdpbmRvdyBpcyBzaW1wbHkgYWN0
aXZhdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQppbmRleCBjNmEyZWNlZWIwZjhkNzEwMTVhYmUyMTYxMmZlMjRjOGRk
ZDQzYjQxLi41N2VjNmFmNWZiMzM3MmI2YTYzZGU0YzlkNTk4ZTQ4MjAyYzhiM2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKQEAgLTE1OTYsNiArMTU5Niw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9DbGlwYm9h
cmQuaCBcCiAgICAgZG9tL0NvbW1lbnQuaCBcCiAgICAgZG9tL0NvbnRhaW5lck5vZGUuaCBcCisg
ICAgZG9tL0NvbnRhaW5lck5vZGVSYXJlRGF0YS5oIFwKICAgICBkb20vQ3VzdG9tRXZlbnQuaCBc
CiAgICAgZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBcCiAgICAgZG9t
L0RldmljZU1vdGlvbkNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYjBmMDNlOTcw
NTUzZGZhMmI2YTRiMDY1OWYzNzRjY2Q1MDVlMzc1Mi4uMGNiMjQzYWM2YzU5MTQ4MGM5ZmVlNmM0
ODU5Y2FmOTQ0YjZiN2VmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTIwNzUsNSArMjA3NSw1
IEBAIF9fWk5LN1dlYkNvcmUyMFNjcm9sbGluZ0Nvb3JkaW5hdG9yMTNzY3JvbGxpbmdUcmVlRXYK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLV9fWk5LN1dlYkNvcmU3RWxlbWVu
dDMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2CitfX1pOSzdXZWJDb3JlMTNDb250
YWluZXJOb2RlMzFudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuRXYKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDE5NTlkZGYxMjg4MGViYTZiY2U0NjE1MTUzNThiYzgxODNiNGQzNWQu
LjJlOGE2ZTQ0NjZmNTNhN2NiZmM3YTVjMWMxNDk4NjdkMzM0MmQ1YmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTU4MCw2ICs1ODAsNyBAQAogICAgICAgICAgICAgJ2RvbS9DbGlwYm9hcmQuaCcsCiAg
ICAgICAgICAgICAnZG9tL0NsaXBib2FyZEFjY2Vzc1BvbGljeS5oJywKICAgICAgICAgICAgICdk
b20vQ29udGFpbmVyTm9kZS5oJywKKyAgICAgICAgICAgICdkb20vQ29udGFpbmVyTm9kZVJhcmVE
YXRhLmgnLAogICAgICAgICAgICAgJ2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oJywKICAgICAgICAg
ICAgICdkb20vRE9NVGltZVN0YW1wLmgnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmllbnRh
dGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggMzVkNDZkYTQxNzYzODBjMmQ5NmU0ZTcyMTIzYWNlMjYyNWFjOWM5Yy4uZmE2MTNlN2Q3
Y2I0ZGYyMmRhYWQwMGY3ODY0YTE1M2UxOGJkMWMxZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ2Njk0LDYgKzQ2Njk0LDEwIEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDb250YWlu
ZXJOb2RlUmFyZURhdGEuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXENyb3NzVGhyZWFkVGFzay5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA2ZDZkODUwZTQ1M2M1MTk1YTExY2Y4OTI4MmVhYjVjZDBmNTMyOWYxLi45MWExZTkzOThjYzZk
M2FjMjQ2MWE4Njg1ZTg4OTcyY2RkZDFlMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTMsNiArMzEzLDcgQEAKIAkJMTQ5
NDdGRkUxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5NDdGRkMxMkY4MENEMjAwQTBG
NjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTE0OTkzQkU1MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0Nv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ5OTNCRTMwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgKi87IH07
CiAJCTE0OTkzQkU2MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0OTkzQkU0MEIyRjJCMUMw
MDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkxNDlBRkIzRTE0RTBDMzkwMDBEQzhDQjMgLyogQ29udGFp
bmVyTm9kZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDlBRkIzRDE0RTBDMzkwMDBEQzhDQjMgLyogQ29udGFpbmVyTm9kZVJhcmVEYXRh
LmggKi87IH07CiAJCTE0QzlBNUVBMEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEM5QTVFOTBCM0Qx
MDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwICovOyB9OwogCQkxNENEOEQ4MjEwNkI1MjkwMDBB
NDZEMjMgLyogSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRDRDhEODExMDZCNTI5MDAwQTQ2RDIzIC8qIEpTU2hh
cmVkV29ya2VyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMTRDRjc4QTQwOUY1OENCRjAwRUIzNjY1IC8q
IEpTQ1NTVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTRDRjc4QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuY3BwICovOyB9OwpA
QCAtNzAxMSw2ICs3MDEyLDcgQEAKIAkJMTQ5NDdGRkMxMkY4MENEMjAwQTBGNjMxIC8qIERvY3Vt
ZW50T3JkZXJlZE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVu
dE9yZGVyZWRNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ5OTNCRTMwQjJG
MkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRm9jdXNDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTQ5OTNCRTQwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9jdXNDb250cm9sbGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0OUFGQjNEMTRFMEMzOTAwMERDOENCMyAvKiBD
b250YWluZXJOb2RlUmFyZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29udGFpbmVyTm9kZVJhcmVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0
QTk4RTA1MTM2Mzg2QTIwMEM5RkVEMiAvKiBCbG9iLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBCbG9iLmlkbDsgcGF0aCA9IC4uLy4uLy4uL3dlYmtpdC9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0Jsb2IuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTE0QkRGNTk3MTM2NTM5
MkMwMDE0ODM5MyAvKiBET01GaWxlU3lzdGVtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBE
T01GaWxlU3lzdGVtLmlkbDsgcGF0aCA9IC4uLy4uLy4uL3dlYmtpdC9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0RPTUZpbGVTeXN0ZW0uaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJ
CTE0QkRGNTlBMTM2NTM5OTEwMDE0ODM5MyAvKiBGaWxlUmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBGaWxlUmVhZGVyLmlkbDsgcGF0aCA9IC4uLy4uLy4uL3dlYmtpdC9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CkBAIC0yMDQwNyw2ICsyMDQwOSw3IEBACiAJCQkJQTgxODcyMTQwOTc3RDNDMDAwNTgyNkQ5
IC8qIENvbnRhaW5lck5vZGUuY3BwICovLAogCQkJCUE4MTg3MjExMDk3N0QzQzAwMDU4MjZEOSAv
KiBDb250YWluZXJOb2RlLmggKi8sCiAJCQkJRTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8qIENv
bnRhaW5lck5vZGVBbGdvcml0aG1zLmggKi8sCisJCQkJMTQ5QUZCM0QxNEUwQzM5MDAwREM4Q0Iz
IC8qIENvbnRhaW5lck5vZGVSYXJlRGF0YS5oICovLAogCQkJCTJFM0ZBQTA4MTFBMzZCRjEwMDU3
NjYyNCAvKiBDcm9zc1RocmVhZFRhc2suaCAqLywKIAkJCQk2MkNEMzI1NjExNTdFNTdDMDA2M0Iw
QTcgLyogQ3VzdG9tRXZlbnQuY3BwICovLAogCQkJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAv
KiBDdXN0b21FdmVudC5oICovLApAQCAtMjQxMjcsNiArMjQxMzAsNyBAQAogCQkJCTFBQUFEREJG
MTREQzY0MDcwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQUFEREU0MTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdUcmVlTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFBQURERTkxNERDOERGODAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVO
b2RlTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDlBRkIzRTE0RTBDMzkwMDBEQzhDQjMgLyog
Q29udGFpbmVyTm9kZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAppbmRleCA5MDc1ZjhhM2U3MWU3MjcxZWJjYzIzOTRiNmNlZjRhNzdlOTVh
N2M1Li4wODU5NTA0ODQ5MmRiMzBkZTQwMzEzMDFiZDRlYjEwOWFmMjBkMDBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJD
aGlsZExpc3RNdXRhdGlvblNjb3BlLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuaCIKKyNpbmNsdWRlICJDb250YWluZXJOb2RlUmFyZURhdGEuaCIKICNpbmNsdWRlICJEZWxl
dGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTEwODcsNiArMTA4OCw0NiBAQCBOb2RlICpDb250YWluZXJO
b2RlOjpjaGlsZE5vZGUodW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG47CiB9CiAK
KyNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQorT3duUHRyPE5vZGVSYXJlRGF0YT4gQ29udGFpbmVy
Tm9kZTo6Y3JlYXRlUmFyZURhdGEoKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29udGFp
bmVyTm9kZVJhcmVEYXRhKTsKK30KKworaW5saW5lIENvbnRhaW5lck5vZGVSYXJlRGF0YSogQ29u
dGFpbmVyTm9kZTo6cmFyZURhdGEoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNSYXJlRGF0YSgp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q29udGFpbmVyTm9kZVJhcmVEYXRhKj4oTm9kZVJh
cmVEYXRhOjpyYXJlRGF0YUZyb21NYXAodGhpcykpOworfQorCitpbmxpbmUgQ29udGFpbmVyTm9k
ZVJhcmVEYXRhKiBDb250YWluZXJOb2RlOjplbnN1cmVSYXJlRGF0YSgpCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENvbnRhaW5lck5vZGVSYXJlRGF0YSo+KE5vZGU6OmVuc3VyZVJhcmVEYXRh
KCkpOworfQorCitib29sIENvbnRhaW5lck5vZGU6Omhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLT5oYXNTY29w
ZWRIVE1MU3R5bGVDaGlsZCgpOworfQorCitzaXplX3QgQ29udGFpbmVyTm9kZTo6bnVtYmVyT2ZT
Y29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRh
KCkgPyByYXJlRGF0YSgpLT5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgOiAwOwor
fQorCit2b2lkIENvbnRhaW5lck5vZGU6OnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQor
eworICAgIGVuc3VyZVJhcmVEYXRhKCktPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsK
K30KKwordm9pZCBDb250YWluZXJOb2RlOjp1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQo
KQoreworICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKKyAgICBpZiAoaGFzUmFyZURhdGEoKSkK
KyAgICAgICAgcmFyZURhdGEoKS0+dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7Cit9
CisjZW5kaWYKKwogc3RhdGljIHZvaWQgbm90aWZ5Q2hpbGRJbnNlcnRlZChOb2RlKiBjaGlsZCkK
IHsKICAgICBBU1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuaAppbmRleCAzNmEyZjAwOGMzZjRiM2YwMjI1OTlmZGEyOGM0OWU5ZWI3N2Ew
MTNmLi41NmMzYWY0YThjOGU0MTQwYjFkODAyMWI1OGMwZTEzY2M3ZWIxZDY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBDb250YWluZXJOb2RlUmFyZURhdGE7CiBjbGFzcyBGbG9hdFBvaW50Owog
ICAgIAogdHlwZWRlZiB2b2lkICgqTm9kZUNhbGxiYWNrKShOb2RlKiwgdW5zaWduZWQpOwpAQCAt
ODQsNiArODUsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Ym9vbCBjcmVhdGVkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9k
ZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlU2V0TmVlZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5
cGUgPSBGdWxsU3R5bGVDaGFuZ2UpIE9WRVJSSURFOwogCisjaWYgRU5BQkxFKFNUWUxFX1NDT1BF
RCkKKyAgICB2aXJ0dWFsIE93blB0cjxOb2RlUmFyZURhdGE+IGNyZWF0ZVJhcmVEYXRhKCk7Cisg
ICAgQ29udGFpbmVyTm9kZVJhcmVEYXRhKiByYXJlRGF0YSgpIGNvbnN0OworICAgIENvbnRhaW5l
ck5vZGVSYXJlRGF0YSogZW5zdXJlUmFyZURhdGEoKTsKKworICAgIHZvaWQgcmVnaXN0ZXJTY29w
ZWRIVE1MU3R5bGVDaGlsZCgpOworICAgIHZvaWQgdW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNo
aWxkKCk7CisgICAgYm9vbCBoYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpIGNvbnN0OworICAgIHNp
emVfdCBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3Q7CisjZW5kaWYKKwog
cHJvdGVjdGVkOgogICAgIENvbnRhaW5lck5vZGUoRG9jdW1lbnQqLCBDb25zdHJ1Y3Rpb25UeXBl
ID0gQ3JlYXRlQ29udGFpbmVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVS
YXJlRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlNjIwMzAwODNmZDU5NjlhYmMwOTkyYjA3NzJmYzQ1Njc2
YTc0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZVJhcmVEYXRhLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGFpbmVyTm9kZVJhcmVE
YXRhX2gKKyNkZWZpbmUgQ29udGFpbmVyTm9kZVJhcmVEYXRhX2gKKworI2luY2x1ZGUgIk5vZGVS
YXJlRGF0YS5oIgorCisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBDb250YWluZXJOb2RlUmFyZURhdGEgOiBwdWJsaWMgTm9kZVJhcmVEYXRh
IHsKK3B1YmxpYzoKKyAgICBDb250YWluZXJOb2RlUmFyZURhdGEoKTsKKyAgICB2aXJ0dWFsIH5D
b250YWluZXJOb2RlUmFyZURhdGEoKTsKKworICAgIHZvaWQgcmVnaXN0ZXJTY29wZWRIVE1MU3R5
bGVDaGlsZCgpOworICAgIHZvaWQgdW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7Cisg
ICAgYm9vbCBoYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpIGNvbnN0OworICAgIHNpemVfdCBudW1i
ZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3Q7CisKKyAgICBzaXplX3QgbV9udW1i
ZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOworfTsKKworaW5saW5lIENvbnRhaW5lck5vZGVS
YXJlRGF0YTo6Q29udGFpbmVyTm9kZVJhcmVEYXRhKCkKKyAgICA6IE5vZGVSYXJlRGF0YSgpCisg
ICAgLCBtX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oMCkKK3sKK30KKworaW5saW5l
IENvbnRhaW5lck5vZGVSYXJlRGF0YTo6fkNvbnRhaW5lck5vZGVSYXJlRGF0YSgpCit7Cit9CisK
K2lubGluZSB2b2lkIENvbnRhaW5lck5vZGVSYXJlRGF0YTo6cmVnaXN0ZXJTY29wZWRIVE1MU3R5
bGVDaGlsZCgpCit7CisgICAgKyttX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Cit9
CisKK2lubGluZSB2b2lkIENvbnRhaW5lck5vZGVSYXJlRGF0YTo6dW5yZWdpc3RlclNjb3BlZEhU
TUxTdHlsZUNoaWxkKCkKK3sKKyAgICBBU1NFUlQobV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNo
aWxkcmVuID4gMCk7CisgICAgaWYgKG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiA+
IDApCisgICAgICAgIC0tbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOworfQorCitp
bmxpbmUgYm9vbCBDb250YWluZXJOb2RlUmFyZURhdGE6Omhhc1Njb3BlZEhUTUxTdHlsZUNoaWxk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
OworfQorCitpbmxpbmUgc2l6ZV90IENvbnRhaW5lck5vZGVSYXJlRGF0YTo6bnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbjsKK30KKworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggOWIwMjNkZjFmOWRlZmEyN2Y3MjAwZTg5MzkwZjQxYmNkMTQ3ZTY2
YS4uYzBkMzNjYjNhNTk5N2JlZTc4MDgxNDAxMWNkNmIyNTkxNGVkZWQzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtODYyLDYgKzg2Miw4IEBAIHZvaWQgRWxlbWVudDo6d2lsbFJlbW92ZSgp
CiAgICAgaWYgKGNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoKSkKICAgICAgICAgc2V0Q29udGFp
bnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFs
c2UpOwogI2VuZGlmCisgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkK
KyAgICAgICAgc2hhZG93LT53aWxsUmVtb3ZlKCk7CiAgICAgQ29udGFpbmVyTm9kZTo6d2lsbFJl
bW92ZSgpOwogfQogCkBAIC0xNzU0LDMwICsxNzU2LDYgQEAgdW5zaWduZWQgRWxlbWVudDo6Y2hp
bGRFbGVtZW50Q291bnQoKSBjb25zdAogICAgIHJldHVybiBjb3VudDsKIH0KIAotI2lmIEVOQUJM
RShTVFlMRV9TQ09QRUQpCi1ib29sIEVsZW1lbnQ6Omhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YSgpLT5oYXNTY29w
ZWRIVE1MU3R5bGVDaGlsZCgpOwotfQotCi1zaXplX3QgRWxlbWVudDo6bnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBy
YXJlRGF0YSgpLT5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgOiAwOwotfQotCi12
b2lkIEVsZW1lbnQ6OnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQotewotICAgIGVuc3Vy
ZVJhcmVEYXRhKCktPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKLX0KLQotdm9pZCBF
bGVtZW50Ojp1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQotewotICAgIEFTU0VSVCho
YXNSYXJlRGF0YSgpKTsKLSAgICBpZiAoaGFzUmFyZURhdGEoKSkKLSAgICAgICAgcmFyZURhdGEo
KS0+dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7Ci19Ci0jZW5kaWYKLQogYm9vbCBF
bGVtZW50Ojp3ZWJraXRNYXRjaGVzU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKHNlbGVjdG9yLmlzRW1wdHkoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKaW5kZXggY2Y2ZDljYzdmMzQ4YWIzNDY3NmUyMWNmOGRjZDdiMzQzNDcwZDE2NC4u
NThkOGQxNjhhNGI1MmNmM2I1NTc3MThhYjBkN2E5NWQ4ZjA1MWNhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCkBAIC0zMjAsMTMgKzMyMCw2IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBuZXh0RWxlbWVu
dFNpYmxpbmcoKSBjb25zdDsKICAgICB1bnNpZ25lZCBjaGlsZEVsZW1lbnRDb3VudCgpIGNvbnN0
OwogCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICB2b2lkIHJlZ2lzdGVyU2NvcGVkSFRN
TFN0eWxlQ2hpbGQoKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgp
OwotICAgIGJvb2wgaGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdDsKLSAgICBzaXplX3Qg
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0OwotI2VuZGlmCi0KICAgICBi
b29sIHdlYmtpdE1hdGNoZXNTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0
aW9uQ29kZSYpOwogCiAgICAgRE9NVG9rZW5MaXN0KiBjbGFzc0xpc3QoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBjYTMyMTE1ZTYxODQ2NDg3YzE5MWQ5ZmFhMjg0NzA2
ZjJlZTAyYWY4Li5lOThhN2MxMTY1MTZmNWE2Yjg2ZWY3NDk2ZGMzMTE5OWE0MjY0NmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0yMywzMCArMjMsMjkgQEAKICNkZWZp
bmUgRWxlbWVudFJhcmVEYXRhX2gKIAogI2luY2x1ZGUgIkNsYXNzTGlzdC5oIgorI2luY2x1ZGUg
IkNvbnRhaW5lck5vZGVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdNYXAu
aCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKLSNp
bmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2hhZG93Um9vdDsKIAotY2xhc3MgRWxlbWVudFJhcmVE
YXRhIDogcHVibGljIE5vZGVSYXJlRGF0YSB7CisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKK3R5
cGVkZWYgQ29udGFpbmVyTm9kZVJhcmVEYXRhIEVsZW1lbnRSYXJlRGF0YUJhc2U7CisjZWxzZQor
dHlwZWRlZiBOb2RlUmFyZURhdGEgRWxlbWVudFJhcmVEYXRhQmFzZTsKKyNlbmRpZgorCitjbGFz
cyBFbGVtZW50UmFyZURhdGEgOiBwdWJsaWMgRWxlbWVudFJhcmVEYXRhQmFzZSB7CiBwdWJsaWM6
CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CiAgICAgdmlydHVhbCB+RWxlbWVudFJhcmVEYXRhKCk7
CiAKICAgICB2b2lkIHJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogCi0jaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKLSAgICB2b2lkIHJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKLSAgICB2b2lk
IHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotICAgIGJvb2wgaGFzU2NvcGVkSFRN
TFN0eWxlQ2hpbGQoKSBjb25zdDsKLSAgICBzaXplX3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbigpIGNvbnN0OwotI2VuZGlmCi0KICAgICB1c2luZyBOb2RlUmFyZURhdGE6Om5lZWRz
Rm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoOwogICAgIHVzaW5nIE5vZGVSYXJl
RGF0YTo6c2V0TmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2g7CiAKQEAg
LTc1LDEwICs3NCw2IEBAIHB1YmxpYzoKICAgICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3Q7CiAg
ICAgQXRvbWljU3RyaW5nIG1fc2hhZG93UHNldWRvSWQ7CiAKLSNpZiBFTkFCTEUoU1RZTEVfU0NP
UEVEKQotICAgIHNpemVfdCBtX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Ci0jZW5k
aWYKLQogICAgIE93blB0cjxEYXRhc2V0RE9NU3RyaW5nTWFwPiBtX2RhdGFzZXRET01TdHJpbmdN
YXA7CiAgICAgT3duUHRyPENsYXNzTGlzdD4gbV9jbGFzc0xpc3Q7CiAKQEAgLTk1LDExICs5MCw5
IEBAIGlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkKIH0KIAog
aW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKCkKLSAgICA6IG1fbWluaW11
bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpKQorICAgIDog
RWxlbWVudFJhcmVEYXRhQmFzZSgpCisgICAgLCBtX21pbmltdW1TaXplRm9yUmVzaXppbmcoZGVm
YXVsdE1pbmltdW1TaXplRm9yUmVzaXppbmcoKSkKICAgICAsIG1fc2hhZG93Um9vdCgwKQotI2lm
IEVOQUJMRShTVFlMRV9TQ09QRUQpCi0gICAgLCBtX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hp
bGRyZW4oMCkKLSNlbmRpZgogICAgICwgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eShmYWxzZSkKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1l
bnQoZmFsc2UpCkBAIC0xMTcsMjkgKzExMCw1IEBAIGlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0
YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKICAgICBtX2NvbXB1dGVkU3R5bGUuY2xlYXIoKTsKIH0K
IAotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi1pbmxpbmUgdm9pZCBFbGVtZW50UmFyZURhdGE6
OnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQotewotICAgICsrbV9udW1iZXJPZlNjb3Bl
ZEhUTUxTdHlsZUNoaWxkcmVuOwotfQotCi1pbmxpbmUgdm9pZCBFbGVtZW50UmFyZURhdGE6OnVu
cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCi17Ci0gICAgQVNTRVJUKG1fbnVtYmVyT2ZT
Y29wZWRIVE1MU3R5bGVDaGlsZHJlbiA+IDApOwotICAgIGlmIChtX251bWJlck9mU2NvcGVkSFRN
TFN0eWxlQ2hpbGRyZW4gPiAwKQotICAgICAgICAtLW1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbjsKLX0KLQotaW5saW5lIGJvb2wgRWxlbWVudFJhcmVEYXRhOjpoYXNTY29wZWRIVE1M
U3R5bGVDaGlsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5
bGVDaGlsZHJlbjsKLX0KLQotaW5saW5lIHNpemVfdCBFbGVtZW50UmFyZURhdGE6Om51bWJlck9m
U2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oKSBjb25zdAotewotICAgIHJldHVybiBtX251bWJlck9m
U2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Ci19Ci0jZW5kaWYKLQogfQogI2VuZGlmIC8vIEVsZW1l
bnRSYXJlRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggOWJhNjhiZDM1ODEx
M2NkYjFiZjAwODliNDY3NzIyMDY5YmU3NjZiZC4uZGRkN2MzY2I0YzdjZGI5MTUwMTUyYmVhYWUw
NTAzODEwNjgxYjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMjcsMTEgKzI3
LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogCisj
aW5jbHVkZSAiQ29udGFpbmVyTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiQ29udGVudEluY2x1
c2lvblNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCi0jaW5jbHVkZSAiTm9kZVJhcmVE
YXRhLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA0MTU2Y2U1ZjFlYjNhYWI5ZGQw
Y2UzZGUzODYzMDRiZjlkMmI4NzNiLi41NjU0YTQ1Mzg4ZjM4NDdhNWY5YzdhOTdhN2Q0ZDYxNjMw
MzhlYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTg4
LDkgKzg4LDE1IEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05v
ZGUoKQogICAgIEFTU0VSVCghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpOwogICAgIEFT
U0VSVChpbkRvY3VtZW50KCkpOwogICAgIGlmICghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05v
ZGUpIHsKLSAgICAgICAgRWxlbWVudCogc2NvcGUgPSBwYXJlbnRFbGVtZW50KCk7CisgICAgICAg
IENvbnRhaW5lck5vZGUqIHNjb3BlID0gcGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIXNjb3Bl
KQogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoIXNjb3BlLT5pc0VsZW1lbnROb2Rl
KCkgJiYgIXNjb3BlLT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgLy8gRG9jdW1lbnRG
cmFnbWVudCBub2RlcyBzaG91bGQgbmV2ZXIgYmUgaW5Eb2N1bWVudCwKKyAgICAgICAgICAgIC8v
IDxzdHlsZT4gc2hvdWxkIG5vdCBiZSBhIGNoaWxkIG9mIFBJIG9yIHNvbWUgc3VjaC4KKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CiAKICAgICAgICAgc2NvcGUtPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKICAg
ICAgICAgc2NvcGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKQEAgLTEwNyw3ICsxMTMsNyBAQCB2
b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUoKQogICAgIC8v
IFRoZXJlZm9yZSB3ZSBjYW5ub3QgcmVseSBvbiBzY29wZWQoKSEKICAgICBBU1NFUlQobV9pc1Jl
Z2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpOwogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFdpdGhTY29w
aW5nTm9kZSkgewotICAgICAgICBFbGVtZW50KiBzY29wZSA9IHBhcmVudEVsZW1lbnQoKTsKKyAg
ICAgICAgQ29udGFpbmVyTm9kZSogc2NvcGUgPSBwYXJlbnROb2RlKCk7CiAgICAgICAgIEFTU0VS
VChzY29wZSk7CiAgICAgICAgIGlmIChzY29wZSkgewogICAgICAgICAgICAgQVNTRVJUKHNjb3Bl
LT5oYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCAxMjEyZjhkNzg4MGExYTc0MDBjMTE4ODJiYzgwZWE1Y2Q3MDJjZGEyLi5kNjU4
ODI3Zjk3ZjhjYTU3ZTJiMTc3NjllMWZjZWFjMjU0YjVmMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0xNzMsMTEgKzE3MywxMSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpl
bGVtZW50UmVuZGVyVHJlZUFzVGV4dChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gcmVwcmVzZW50YXRpb247CiB9CiAKLXNpemVfdCBJbnRlcm5hbHM6Om51
bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oY29uc3QgRWxlbWVudCogZWxlbWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CitzaXplX3QgSW50ZXJuYWxzOjpudW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuKGNvbnN0IE5vZGUqIHNjb3BlLCBFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKIHsKLSAgICBpZiAoZWxlbWVudCkKKyAgICBpZiAoc2NvcGUgJiYgKHNjb3BlLT5pc0VsZW1l
bnROb2RlKCkgfHwgc2NvcGUtPmlzU2hhZG93Um9vdCgpKSkKICNpZiBFTkFCTEUoU1RZTEVfU0NP
UEVEKQotICAgICAgICByZXR1cm4gZWxlbWVudC0+bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbigpOworICAgICAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHNjb3BlKS0+bnVtYmVyT2ZT
Y29wZWRIVE1MU3R5bGVDaGlsZHJlbigpOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIDA7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDU4ZDc1ZDY0YmM0YWRhYTNjMjY3
YmE1MmY3NWQ2ZTQ0MmJiZjdhZjAuLjExZjAxOTJjYzBlZTAxZWU4NjhhMjEyNDc2NzAxZjhkMjUx
NzU3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGlzUHJlbG9hZGVkKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiB1
cmwpOwogCi0gICAgc2l6ZV90IG51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oY29uc3Qg
RWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBzaXplX3QgbnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbihjb25zdCBOb2RlKiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owog
CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCiAgICAgdHlwZWRlZiBTaGFkb3dSb290IFNoYWRvd1Jv
b3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKaW5kZXggNTRmM2Q1NWFiZjgzYjY3MmY1ZTQzNjg0N2Q3NjI5MTA5Y2Y2MjczZS4uN2E0Nzhh
MzIzOGE1ZmU5YmEyYzg3NDY0ZTFlNjk4NmIxMzMyMTc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbApAQCAtMzAsNyArMzAsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
RE9NU3RyaW5nIGVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGJvb2xlYW4gaXNQcmVsb2FkZWQoaW4gRG9jdW1l
bnQgZG9jdW1lbnQsIGluIERPTVN0cmluZyB1cmwpOwogCi0gICAgICAgIHVuc2lnbmVkIGxvbmcg
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mU2NvcGVkSFRN
TFN0eWxlQ2hpbGRyZW4oaW4gTm9kZSBzY29wZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICNp
ZiBkZWZpbmVkKEVOQUJMRV9TSEFET1dfRE9NKQogICAgICAgICBTaGFkb3dSb290IGVuc3VyZVNo
YWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYKaW5kZXggYzQ0NWZmY2FmMWIyZmUzZjczNTQyNmJjYjJhNGEyN2E4NzdlNzc5
OS4uZjAxYTFjYjhmNTlhNjI4ZWNiYjBmODZhOGM0ODg1NmIwZGM2OTUwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgpAQCAtMTY5LDcgKzE2OSw3IEBAIEVYUE9SVFMKICAgICAgICAgP21hcmtlcnNG
b3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRv
Y3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAVk1hcmtlclR5cGVzQERv
Y3VtZW50TWFya2VyQDJAQFoKICAgICAgICAgP29ic2VydmVGcmFtZUBGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXJAV2ViQ29yZUBASUFFWFBBVkZyYW1lQDJAQFoKICAgICAgICAgP292ZXJyaWRlVXNl
clByZWZlcnJlZExhbmd1YWdlc0BXZWJDb3JlQEBZQVhBQlY/JFZlY3RvckBWU3RyaW5nQFdURkBA
JDBBQEBXVEZAQEBaCi0gICAgICAgIDsgP251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5A
RWxlbWVudEBXZWJDb3JlQEBRQkVJWFoKKyAgICAgICAgP251bWJlck9mU2NvcGVkSFRNTFN0eWxl
Q2hpbGRyZW5AQ29udGFpbmVyTm9kZUBXZWJDb3JlQEBRQkVJWFoKICAgICAgICAgP3BhZ2VARG9j
dW1lbnRAV2ViQ29yZUBAUUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENvbnRyb2xUaW50
c0BGcmFtZVZpZXdAV2ViQ29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFu
ZExlbmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdl
YkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZgppbmRleCAxZGI1MGY2MjNiYzA0YzA2MWQwNzA2MDc5ZjhiNzM4YWVjNjMzOTI2Li5k
OTMwZDhhZDkxMTc5YzY4Y2IyZjAwZTBmNDliYTQ5NjJiNWU3M2EzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjMsNyArMTYzLDcgQEAgRVhQT1JUUwogICAgICAgICA/
bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFP0FWPyRWZWN0
b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5vZGVAMkBWTWFya2Vy
VHlwZXNARG9jdW1lbnRNYXJrZXJAMkBAWgogICAgICAgICA/b2JzZXJ2ZUZyYW1lQEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3JlQEBJQUVYUEFWRnJhbWVAMkBAWgogICAgICAgICA/b3Zl
cnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQFdlYkNvcmVAQFlBWEFCVj8kVmVjdG9yQFZTdHJp
bmdAV1RGQEAkMEFAQFdURkBAQFoKLSAgICAgICAgOyA/bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbkBFbGVtZW50QFdlYkNvcmVAQFFCRUlYWgorICAgICAgICA/bnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbkBDb250YWluZXJOb2RlQFdlYkNvcmVAQFFCRUlYWgogICAgICAgICA/
cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29u
dHJvbFRpbnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxv
Y2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBW
UmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEhIX05AWgpkaWZmIC0tZ2l0IGEvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIKaW5kZXggNWFhYzA0ZDY4NjNkNzYyOWI5MDZhODcwYzY0YzZlYTNiY2U4OGM1ZS4uYzBk
ZDg2YjcyMTFmNWE5ZmNkYjYxMDMwMDU1YzBiMTI3MzlkZGEzNiAxMDA2NDQKLS0tIGEvU291cmNl
L2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCkBAIC03OSwxMSArNzksMTEgQEAgX1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1VzZXJFZGl0RXY7CiBfWk5LN1dlYkNvcmU1RnJhbWU4
c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05vZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQ
TjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNoYWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxl
bWVudDEwc2hhZG93Um9vdEV2OwotX1pOSzdXZWJDb3JlN0VsZW1lbnQzMW51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW5FdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CiBfWk5L
N1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3
RXY7CiBfWk5LN1dlYkNvcmU5VHJlZVNjb3BlMTRnZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFOworX1pOSzdXZWJDb3JlMTNDb250YWluZXJOb2RlMzFudW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuRXY7CiBfWk43V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyOHNldFNjcm9s
bE9mZnNldEZyb21JbnRlcm5hbHNFUktOU184SW50UG9pbnRFOwogX1pON1dlYkNvcmUxMFNjcm9s
bFZpZXcyM3NldFNjcm9sbGJhcnNTdXBwcmVzc2VkRWJiOwogX1pON1dlYkNvcmU4U2V0dGluZ3My
NHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEViOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgzNGQ4YjA5ZmQyYTY1MzdkNmZk
Y2U4OWVlOTNiNGFkOGRkZjM0YjAuLmVjYzQ4ZjNjZGVhYWE5NGJkNDhiZjQzODM1MDU5ZTFmMjY5
NjQ3OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0wNiAgUm9sYW5kIFN0ZWluZXIg
IDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KKworICAgICAgICA8c3R5bGUgc2NvcGVkPjog
QWxsb3cgPHN0eWxlIHNjb3BlZD4gYXMgYSBkaXJlY3QgY2hpbGQgb2YgYSBTaGFkb3dSb290Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg1MworCisg
ICAgICAgIFRlc3QgcmVnaXN0cmF0aW9uIG9mIDxzdHlsZSBzY29wZWQ+IGFzIGEgZGlyZWN0IGNo
aWxkIG9mIGEgU2hhZG93Um9vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdpc3RlcmluZy1zaGFkb3dy
b290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3JlZ2lzdGVyaW5nLXNoYWRvd3Jvb3QuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMDYgIERhdmlk
IEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBvcnQgc29tZSBpbmRl
eGVkZGIgbGF5b3V0IHRlc3RzIHRvIHdvcmtlcnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9v
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQyZTk4ZjcxMTc2MjQwMDVlZDMxMzQ5ZWUwNzdi
M2NiMDk0NzNkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxl
LXNjb3BlZC9yZWdpc3RlcmluZy1zaGFkb3dyb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMx
IEBACitUZXN0IGhhdmluZyBhIDxzdHlsZSBzY29wZWQ+IGVsZW1lbnQgYXMgYSBkaXJlY3QgY2hp
bGQgb2YgYSBTaGFkb3dSb290LgorCistLS0gSW5pdGlhbCAtLS0KK1BBU1MgaW50ZXJuYWxzLm51
bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMu
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikgaXMgMAorLS0tIEF0dGFjaGluZyA8
c3R5bGUgc2NvcGVkPiAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxl
Q2hpbGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5
bGVDaGlsZHJlbihzcikgaXMgMQorLS0tIFJlbW92aW5nIGhvc3QgLS0tCitQQVNTIGludGVybmFs
cy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIGlzIDAKK1BBU1MgaW50ZXJu
YWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIGlzIDAKKy0tLSBJbnNlcnRp
bmcgaG9zdCAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRy
ZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbihzcikgaXMgMQorLS0tIFVuc2V0dGluZyBAc2NvcGVkIC0tLQorUEFTUyBpbnRlcm5hbHMu
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSBpcyAwCitQQVNTIGludGVybmFs
cy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSBpcyAwCistLS0gU2V0dGluZyBA
c2NvcGVkIC0tLQorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJl
bihob3N0KSBpcyAwCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxk
cmVuKHNyKSBpcyAxCistLS0gRGV0YWNoaW5nIDxzdHlsZSBzY29wZWQ+IC0tLQorUEFTUyBpbnRl
cm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSBpcyAwCitQQVNTIGlu
dGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSBpcyAwCistLS0gQXR0
YWNoaW5nIDxzdHlsZSBzY29wZWQ+IHVuZGVyIGhvc3QgLS0tCitQQVNTIGludGVybmFscy5udW1i
ZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIGlzIDEKK1BBU1MgaW50ZXJuYWxzLm51
bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIGlzIDAKKy0tLSBET05FIC0tLQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdpc3RlcmluZy1zaGFkb3dy
b290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmct
c2hhZG93cm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNGM1NDczNGNiMTZhMDRmZTZmN2NhZDExOTU5
NjFlNWQ4MDY4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHls
ZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzxo
dG1sPgorPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PHA+VGVzdCBoYXZpbmcgYSAmbHQ7c3R5bGUgc2NvcGVkJmd0OyBlbGVtZW50IGFzIGEgZGlyZWN0
IGNoaWxkIG9mIGEgU2hhZG93Um9vdC48L3A+CisgICAgPGRpdiBpZD0iaG9zdCI+CisgICAgPC9k
aXY+CisgICAgPGRpdiBpZD0icmVmIj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICAgICAgZGVidWcoIndpbmRvd3MuaW50ZXJuYWxzIG5vdCBmb3VuZCEiKTsKKyAg
ICAgICAgZWxzZSBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCkKKyAgICAg
ICAgICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5lbnN1cmVTaGFkb3dSb290IG5vdCBmb3Vu
ZCEiKTsKKyAgICAgICAgZWxzZSBpZiAoIXdpbmRvdy5pbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbikKKyAgICAgICAgICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5u
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIG5vdCBmb3VuZCEiKTsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICB2YXIgcmVmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZicp
OworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcp
OworICAgICAgICAgICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoaG9zdCk7
CisgICAgICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScp
OworICAgICAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdzY29wZWQnLCAnc2NvcGVkJyk7CisK
KyAgICAgICAgICAgIGRlYnVnKCItLS0gSW5pdGlhbCAtLS0iKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSIsICIw
Iik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0
eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBvdXQgb2YgZG9jdW1lbnQsIHNjb3Bl
ZCAqLworCisgICAgICAgICAgICBkZWJ1ZygiLS0tIEF0dGFjaGluZyAmbHQ7c3R5bGUgc2NvcGVk
Jmd0OyAtLS0iKTsKKyAgICAgICAgICAgIHNyLmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiho
b3N0KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2Nv
cGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjEiKTsgLyogPHN0eWxlPiBpbiBzaGFkb3csIHNj
b3BlZCAqLworCisgICAgICAgICAgICBkZWJ1ZygiLS0tIFJlbW92aW5nIGhvc3QgLS0tIik7Cisg
ICAgICAgICAgICBob3N0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaG9zdCk7CisgICAgICAgICAg
ICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9z
dCkiLCAiMCIpOworICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3Bl
ZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSIsICIwIik7IC8qIDxzdHlsZT4gb3V0IG9mIGRvY3VtZW50
LCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBJbnNlcnRpbmcgaG9zdCAtLS0i
KTsKKyAgICAgICAgICAgIHJlZi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShob3N0LCByZWYpOwor
ICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNo
aWxkcmVuKGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikiLCAiMSIpOyAvKiA8c3R5bGU+IGluIHNo
YWRvdywgc2NvcGVkICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gVW5zZXR0aW5nIEBzY29w
ZWQgLS0tIik7CisgICAgICAgICAgICBzdHlsZS5zY29wZWQgPSBmYWxzZTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0
KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBpbiBzaGFkb3csIG5vdCBz
Y29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBTZXR0aW5nIEBzY29wZWQgLS0tIik7
CisgICAgICAgICAgICBzdHlsZS5zY29wZWQgPSB0cnVlOworICAgICAgICAgICAgc2hvdWxkQmUo
ImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIiwgIjAiKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbihzcikiLCAiMSIpOyAvKiA8c3R5bGU+IGluIHNoYWRvdywgc2NvcGVkICovCisKKyAg
ICAgICAgICAgIGRlYnVnKCItLS0gRGV0YWNoaW5nICZsdDtzdHlsZSBzY29wZWQmZ3Q7IC0tLSIp
OworICAgICAgICAgICAgc3IucmVtb3ZlQ2hpbGQoc3R5bGUpOworICAgICAgICAgICAgc2hvdWxk
QmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIiwgIjAi
KTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5
bGVDaGlsZHJlbihzcikiLCAiMCIpOyAvKiA8c3R5bGU+IG91dCBvZiBkb2N1bWVudCwgc2NvcGVk
ICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gQXR0YWNoaW5nICZsdDtzdHlsZSBzY29wZWQm
Z3Q7IHVuZGVyIGhvc3QgLS0tIik7CisgICAgICAgICAgICBob3N0LmFwcGVuZENoaWxkKHN0eWxl
KTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5
bGVDaGlsZHJlbihob3N0KSIsICIxIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxz
Lm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBp
biB0cmVlLCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBET05FIC0tLSIpOwor
ICAgICAgICB9CisgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCAwMDUzMTk4YWYyOTEwYjA3MjIxMDM1MGNhMjhkNmU5NWZmYTgxZmNj
Li5kMmNlMDhmNjRkODJhNjhlMGNmNjhiMTkwMDYxMTY1YjM0ODcyYmVhIDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMDYgIFJv
bGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPHN0
eWxlIHNjb3BlZD46IEFsbG93IDxzdHlsZSBzY29wZWQ+IGFzIGEgZGlyZWN0IGNoaWxkIG9mIGEg
U2hhZG93Um9vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc4NTMKKworICAgICAgICBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIGdvdCBt
b3ZlZCBmcm9tIEVsZW1lbnQgaW50byBDb250YWluZXJOb2RlLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlcjoKKwogMjAxMi0wMi0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBm
b3IgMS43LjUgcmVsZWFzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126253</attachid>
            <date>2012-02-09 00:46:35 -0800</date>
            <delta_ts>2012-02-09 22:06:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77853-20120209174634.patch</filename>
            <type>text/plain</type>
            <size>35768</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmVjNWEyNTNlNWQ0MDYy
NTdlZjBiMjQ2Yjk5NzViNWZlZDBjYzg3MC4uNWUwOWVjZDM1ZDVkMmViODUxMWQwMDk4NjVlNzMx
ZmY1NzMyOTMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTAyLTA2ICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHls
ZSBzY29wZWQ+OiBBbGxvdyA8c3R5bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBjaGlsZCBvZiBhIFNo
YWRvd1Jvb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3ODUzCisKKyAgICAgICAgTW92ZWQgcmVnaXN0cmF0aW9uIGNvZGUgZnJvbSBFbGVtZW50IHRv
IENvbnRhaW5lck5vZGUuCisgICAgICAgIFVwZGF0ZWQgSW50ZXJuYWxzIGFuZCBidWlsZCBmaWxl
cyBhY2NvcmRpbmdseS4KKyAgICAgICAgQWRkZWQgbmV3IGNsYXNzIENvbnRhaW5lck5vZGVSYXJl
RGF0YSB0byBob2xkIHJlZ2lzdHJhdGlvbiBjb3VudCBpbnN0ZWFkIG9mIEVsZW1lbnRSYXJlRGF0
YS4KKyAgICAgICAgRm9yd2FyZCB3aWxsUmVtb3ZlKCkgZnJvbSBob3N0IGVsZW1lbnQgaW50byBz
aGFkb3cgRE9NIHRyZWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3JlZ2lzdGVyaW5nLXNoYWRvd3Jv
b3QuaHRtbAorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Y3JlYXRlUmFyZURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6ZW5zdXJlUmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFp
bmVyTm9kZTo6aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGFpbmVyTm9kZTo6bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVD
aGlsZCk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoQ29udGFpbmVyTm9kZSk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVS
YXJlRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGFpbmVy
Tm9kZVJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGVSYXJlRGF0YTo6
Q29udGFpbmVyTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGVS
YXJlRGF0YTo6fkNvbnRhaW5lck5vZGVSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
YWluZXJOb2RlUmFyZURhdGE6OnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZVJhcmVEYXRhOjp1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0
eWxlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZVJhcmVEYXRhOjpoYXNT
Y29wZWRIVE1MU3R5bGVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlUmFy
ZURhdGE6Om51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4pOgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndpbGxSZW1vdmUpOiBmb3J3
d2FyZCBpbnRvIHNoYWRvdyBET00gdHJlZQorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAg
ICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3QuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdO
b2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6Om51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4pOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMi0wOCAgQW5kcmVhcyBLbGluZyAgPGF3ZXNv
bWVrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgSW5jcmVhc2VkIHN0eWxlIHNoYXJpbmcgZm9y
IGVsZW1lbnRzIHdpdGggcHJlc2VudGF0aW9uIGF0dHJpYnV0ZXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzBj
ZDhlNDU4NDJkZGYwODcxNjczY2NjN2M3MzFkZjc1OGMwNjc0NS4uOTRiYTNhZjI3M2M2OWQzNmNk
YjQ4NDAwNTZhZWMwNDIzOTI3Mzc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTAyLTA2ICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIDxzdHlsZSBzY29wZWQ+OiBBbGxvdyA8c3R5bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBj
aGlsZCBvZiBhIFNoYWRvd1Jvb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc3ODUzCisKKyAgICAgICAgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbiBnb3QgbW92ZWQgZnJvbSBFbGVtZW50IGludG8gQ29udGFpbmVyTm9kZS4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRl
ZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDItMDggIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCB1c2UgdGhl
IHdoZWVsIGV2ZW50IGhhbmRsZXIgY291bnQgdG8gdHJhY2sgaWYgYSBwYWdlIGhhcyBob3Jpem9u
dGFsIHNjcm9sbGJhcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFmMWViNThkYjgzNmNkOWVlMmZhZjRhYmJm
YWU0MjQ2ZGQ5YjNjYWMuLjgzMDE0OWE2OTNmNjg4OGI2NmVjYzM2NThmZTE5OTJhZWM4NDBhYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQpAQCAtMTU5Niw2ICsxNTk2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9t
L0NsaXBib2FyZC5oIFwKICAgICBkb20vQ29tbWVudC5oIFwKICAgICBkb20vQ29udGFpbmVyTm9k
ZS5oIFwKKyAgICBkb20vQ29udGFpbmVyTm9kZVJhcmVEYXRhLmggXAogICAgIGRvbS9DdXN0b21F
dmVudC5oIFwKICAgICBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oIFwK
ICAgICBkb20vRGV2aWNlTW90aW9uQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBl
YzI3YWVjNGY2MGI3MDQwMjdkOTNmZGFhOWE0YzIzZjQxMGJiN2ExLi40MWQyYzg3ODQxYWQ0YTg4
ODNkZjEyM2YyNTIyYzYyY2VkOWU4MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjA3Myw2
ICsyMDczLDQgQEAgX19aTjdXZWJDb3JlNFBhZ2UyMHNjcm9sbGluZ0Nvb3JkaW5hdG9yRXYKIF9f
Wk5LN1dlYkNvcmUyMFNjcm9sbGluZ0Nvb3JkaW5hdG9yMTNzY3JvbGxpbmdUcmVlRXYKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDMxbnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2Ci0jZW5kaWYKK19fWk5LN1dlYkNvcmUxM0Nv
bnRhaW5lck5vZGUzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDNhYjkzMzFkOWFlNzM5MTk1YTE1NGFjN2E5NjRjZmExMjBiNzc4YTguLjY2OWNj
ZjE5MzEzMGJiZjcwYzA0OWI0YmVjMzRjMGUyNjk2ZjQ3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTU3OSw2ICs1NzksNyBAQAogICAgICAgICAgICAgJ2RvbS9DbGlwYm9hcmQuaCcsCiAgICAgICAg
ICAgICAnZG9tL0NsaXBib2FyZEFjY2Vzc1BvbGljeS5oJywKICAgICAgICAgICAgICdkb20vQ29u
dGFpbmVyTm9kZS5oJywKKyAgICAgICAgICAgICdkb20vQ29udGFpbmVyTm9kZVJhcmVEYXRhLmgn
LAogICAgICAgICAgICAgJ2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oJywKICAgICAgICAgICAgICdk
b20vRE9NVGltZVN0YW1wLmgnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmllbnRhdGlvbi5o
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
ZmM0YTIxODNiMDZhYmMxMTY2NzA1YWNlN2M4NDk4MDNmYmM5MjdiNS4uOWVjNmZjNzU3ZjJkYWNm
ZmIyYWUwZDYwNWJjZWFkMDRhYzI4YTU4MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ2Njk0LDYgKzQ2Njk0LDEwIEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDb250YWluZXJOb2Rl
UmFyZURhdGEuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXENyb3NzVGhyZWFkVGFzay5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NjU0
NGU1ZmQ1OTVjYTgwODRiYjJiMjFmYWJhY2YzOThlNjcxNjg1Li4wNzQyOGFlMGYwNmNiNjY2Mzdj
NzRhMmQyZmFlZjEwMDZkMDk3ZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTQsNiArMzE0LDcgQEAKIAkJMTQ5NDdGRkUx
MkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5NDdGRkMxMkY4MENEMjAwQTBGNjMxIC8q
IERvY3VtZW50T3JkZXJlZE1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTE0OTkzQkU1MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5
OTNCRTMwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgKi87IH07CiAJCTE0
OTkzQkU2MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0OTkzQkU0MEIyRjJCMUMwMDUwNDk3
RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkxNDlBRkIzRTE0RTBDMzkwMDBEQzhDQjMgLyogQ29udGFpbmVyTm9k
ZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDlBRkIzRDE0RTBDMzkwMDBEQzhDQjMgLyogQ29udGFpbmVyTm9kZVJhcmVEYXRhLmggKi87
IH07CiAJCTE0QzlBNUVBMEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEM5QTVFOTBCM0QxMDVGMDA1
QTAyMzIgLyogU2V0dGluZ3MuY3BwICovOyB9OwogCQkxNENEOEQ4MjEwNkI1MjkwMDBBNDZEMjMg
LyogSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTRDRDhEODExMDZCNTI5MDAwQTQ2RDIzIC8qIEpTU2hhcmVkV29y
a2VyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMTRDRjc4QTQwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NT
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTRDRjc4QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuY3BwICovOyB9OwpAQCAtMTg4
OSw3ICsxODkwLDYgQEAKIAkJN0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRP
TUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBMjQ1ODc5MTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5jcHAgKi87IH07
CiAJCTdBMjQ1ODdDMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EyNDU4N0ExMDIxRUFG
NDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0E1NDg1N0YxNEUwMkQ1MTAwNkFFMDVBIC8qIElu
c3BlY3Rvckhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0E1NDg1N0QxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuY3Bw
ICovOyB9OwotCQk3QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1NDg1N0Ux
NEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCAqLzsgfTsKIAkJN0E2NzRCREIw
RjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJEOTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLzsgfTsKIAkJN0E2NzRCREMwRjlFQkY0
RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5IC8qIFBh
Z2VHcm91cExvYWREZWZlcnJlci5oICovOyB9OwogCQk3QTc0RUNCQTEwMTgzOUE2MDBCRjkzOUUg
LyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5RSAvKiBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwICovOyB9OwpAQCAtNzAyMiw2ICs3MDIyLDcgQEAKIAkJMTQ5
NDdGRkMxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudE9yZGVyZWRNYXAuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQ5OTNCRTMwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9jdXNDb250
cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ5OTNCRTQwQjJGMkIx
QzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRm9jdXNDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTE0OUFGQjNEMTRFMEMzOTAwMERDOENCMyAvKiBDb250YWluZXJOb2RlUmFyZURhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFpbmVyTm9kZVJhcmVEYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QTk4RTA1MTM2Mzg2QTIwMEM5RkVEMiAvKiBC
bG9iLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBCbG9iLmlkbDsgcGF0aCA9IC4uLy4uLy4u
L3dlYmtpdC9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsOyBzb3VyY2VUcmVlID0gU09V
UkNFX1JPT1Q7IH07CiAJCTE0QkRGNTk3MTM2NTM5MkMwMDE0ODM5MyAvKiBET01GaWxlU3lzdGVt
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBET01GaWxlU3lzdGVtLmlkbDsgcGF0aCA9IC4u
Ly4uLy4uL3dlYmtpdC9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW0uaWRsOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTE0QkRGNTlBMTM2NTM5OTEwMDE0ODM5MyAv
KiBGaWxlUmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBGaWxlUmVhZGVyLmlkbDsg
cGF0aCA9IC4uLy4uLy4uL3dlYmtpdC9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIu
aWRsOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0yMDQzNyw2ICsyMDQzOCw3IEBA
CiAJCQkJQTgxODcyMTQwOTc3RDNDMDAwNTgyNkQ5IC8qIENvbnRhaW5lck5vZGUuY3BwICovLAog
CQkJCUE4MTg3MjExMDk3N0QzQzAwMDU4MjZEOSAvKiBDb250YWluZXJOb2RlLmggKi8sCiAJCQkJ
RTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggKi8s
CisJCQkJMTQ5QUZCM0QxNEUwQzM5MDAwREM4Q0IzIC8qIENvbnRhaW5lck5vZGVSYXJlRGF0YS5o
ICovLAogCQkJCTJFM0ZBQTA4MTFBMzZCRjEwMDU3NjYyNCAvKiBDcm9zc1RocmVhZFRhc2suaCAq
LywKIAkJCQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovLAog
CQkJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oICovLApAQCAtMjEy
NjEsNiArMjEyNjMsNyBAQAogCQkJCUJDRTU2NDRFMTM3QTM0RDYwMDdEMjkzNCAvKiBDb25zb2xl
VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFDMDk3N0QzQzAwMDU4MjZEOSAvKiBD
b250YWluZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUExNDcwODExMTAyQjE1MDBFRUMw
RjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0OUFG
QjNFMTRFMEMzOTAwMERDOENCMyAvKiBDb250YWluZXJOb2RlUmFyZURhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNUVCOTgxMEU4MjA3MjUwMEIyNTk2NSAvKiBDb250ZW50RGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTdCNzkxQTQxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnRJbmNsdXNp
b25TZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkxMDJGQkMxNDMyN0QzQjAwM0M5RDA0
IC8qIENvbnRlbnRTZWFyY2hVdGlscy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDE2MSw3ICsyNDE2
NCw2IEBACiAJCQkJMUFBQURERTQxNERDOEM4RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWVOb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFBRERFOTE0REM4REY4MDBBRjY0QjMgLyogU2Nyb2xs
aW5nVHJlZU5vZGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEz
REI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QTU0ODU4MDE0
RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggZGJkMmI3MjU5NjA3MDRlOTM4ZTA1MGJh
YTg1MzQ1ZjNkYmRlY2FiZC4uMjc2MTgwNTQyYzU4ZWU5MjBkMDdhY2I3YzFhMjNiZGViNWJmMzg2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMjUsNiArMjUsNyBAQAog
CiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIgogI2luY2x1ZGUgIkNvbnRhaW5l
ck5vZGVBbGdvcml0aG1zLmgiCisjaW5jbHVkZSAiQ29udGFpbmVyTm9kZVJhcmVEYXRhLmgiCiAj
aW5jbHVkZSAiRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC0xMDkzLDYgKzEwOTQsNTEgQEAgTm9k
ZSAqQ29udGFpbmVyTm9kZTo6Y2hpbGROb2RlKHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgIHJl
dHVybiBuOwogfQogCisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKK093blB0cjxOb2RlUmFyZURh
dGE+IENvbnRhaW5lck5vZGU6OmNyZWF0ZVJhcmVEYXRhKCkKK3sKKyAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IENvbnRhaW5lck5vZGVSYXJlRGF0YSk7Cit9CisKK2lubGluZSBDb250YWluZXJOb2Rl
UmFyZURhdGEqIENvbnRhaW5lck5vZGU6OnJhcmVEYXRhKCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
aGFzUmFyZURhdGEoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRhaW5lck5vZGVSYXJl
RGF0YSo+KE5vZGVSYXJlRGF0YTo6cmFyZURhdGFGcm9tTWFwKHRoaXMpKTsKK30KKworaW5saW5l
IENvbnRhaW5lck5vZGVSYXJlRGF0YSogQ29udGFpbmVyTm9kZTo6ZW5zdXJlUmFyZURhdGEoKQor
eworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDb250YWluZXJOb2RlUmFyZURhdGEqPihOb2RlOjpl
bnN1cmVSYXJlRGF0YSgpKTsKK30KKworYm9vbCBDb250YWluZXJOb2RlOjpoYXNTY29wZWRIVE1M
U3R5bGVDaGlsZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgcmFyZURh
dGEoKS0+aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKK30KKworc2l6ZV90IENvbnRhaW5lck5v
ZGU6Om51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVy
biBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbigpIDogMDsKK30KKwordm9pZCBDb250YWluZXJOb2RlOjpyZWdpc3RlclNjb3BlZEhUTUxT
dHlsZUNoaWxkKCkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5yZWdpc3RlclNjb3BlZEhUTUxT
dHlsZUNoaWxkKCk7Cit9CisKK3ZvaWQgQ29udGFpbmVyTm9kZTo6dW5yZWdpc3RlclNjb3BlZEhU
TUxTdHlsZUNoaWxkKCkKK3sKKyAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7CisgICAgaWYgKGhh
c1JhcmVEYXRhKCkpCisgICAgICAgIHJhcmVEYXRhKCktPnVucmVnaXN0ZXJTY29wZWRIVE1MU3R5
bGVDaGlsZCgpOworfQorI2Vsc2UKK3NpemVfdCBDb250YWluZXJOb2RlOjpudW1iZXJPZlNjb3Bl
ZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgor
CiBzdGF0aWMgdm9pZCBub3RpZnlDaGlsZEluc2VydGVkKE5vZGUqIGNoaWxkKQogewogICAgIEFT
U0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5oCmluZGV4IDM2YTJmMDA4YzNmNGIzZjAyMjU5OWZkYTI4YzQ5ZTllYjc3YTAxM2YuLjllY2Fj
NjI0YTI5MGNmZGQyOWNjNDY3ZDE2YWRjNWNhZDcyZjA2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuaApAQCAtMjksNiArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIENvbnRhaW5lck5vZGVSYXJlRGF0YTsKIGNsYXNzIEZsb2F0UG9pbnQ7CiAgICAgCiB0eXBl
ZGVmIHZvaWQgKCpOb2RlQ2FsbGJhY2spKE5vZGUqLCB1bnNpZ25lZCk7CkBAIC04NCw2ICs4NSwx
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNyZWF0
ZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNo
YW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVTZXROZWVkc1N0eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSA9IEZ1bGxT
dHlsZUNoYW5nZSkgT1ZFUlJJREU7CiAKKyNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQorICAgIHZp
cnR1YWwgT3duUHRyPE5vZGVSYXJlRGF0YT4gY3JlYXRlUmFyZURhdGEoKTsKKyAgICBDb250YWlu
ZXJOb2RlUmFyZURhdGEqIHJhcmVEYXRhKCkgY29uc3Q7CisgICAgQ29udGFpbmVyTm9kZVJhcmVE
YXRhKiBlbnN1cmVSYXJlRGF0YSgpOworCisgICAgdm9pZCByZWdpc3RlclNjb3BlZEhUTUxTdHls
ZUNoaWxkKCk7CisgICAgdm9pZCB1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKKyAg
ICBib29sIGhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkgY29uc3Q7CisjZW5kaWYKKyAgICBzaXpl
X3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0OworCiBwcm90ZWN0ZWQ6
CiAgICAgQ29udGFpbmVyTm9kZShEb2N1bWVudCosIENvbnN0cnVjdGlvblR5cGUgPSBDcmVhdGVD
b250YWluZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZVJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZVJhcmVEYXRhLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmU2MjAzMDA4M2ZkNTk2OWFiYzA5OTJiMDc3MmZjNDU2NzZhNzRiZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlUmFyZURhdGEu
aApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250YWluZXJOb2RlUmFyZURhdGFfaAorI2Rl
ZmluZSBDb250YWluZXJOb2RlUmFyZURhdGFfaAorCisjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgi
CisKKyNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIENvbnRhaW5lck5vZGVSYXJlRGF0YSA6IHB1YmxpYyBOb2RlUmFyZURhdGEgeworcHVibGlj
OgorICAgIENvbnRhaW5lck5vZGVSYXJlRGF0YSgpOworICAgIHZpcnR1YWwgfkNvbnRhaW5lck5v
ZGVSYXJlRGF0YSgpOworCisgICAgdm9pZCByZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7
CisgICAgdm9pZCB1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKKyAgICBib29sIGhh
c1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkgY29uc3Q7CisgICAgc2l6ZV90IG51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW4oKSBjb25zdDsKKworICAgIHNpemVfdCBtX251bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW47Cit9OworCitpbmxpbmUgQ29udGFpbmVyTm9kZVJhcmVEYXRhOjpD
b250YWluZXJOb2RlUmFyZURhdGEoKQorICAgIDogTm9kZVJhcmVEYXRhKCkKKyAgICAsIG1fbnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigwKQoreworfQorCitpbmxpbmUgQ29udGFpbmVy
Tm9kZVJhcmVEYXRhOjp+Q29udGFpbmVyTm9kZVJhcmVEYXRhKCkKK3sKK30KKworaW5saW5lIHZv
aWQgQ29udGFpbmVyTm9kZVJhcmVEYXRhOjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkK
K3sKKyAgICArK21fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbjsKK30KKworaW5saW5l
IHZvaWQgQ29udGFpbmVyTm9kZVJhcmVEYXRhOjp1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hp
bGQoKQoreworICAgIEFTU0VSVChtX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4gPiAw
KTsKKyAgICBpZiAobV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuID4gMCkKKyAgICAg
ICAgLS1tX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Cit9CisKK2lubGluZSBib29s
IENvbnRhaW5lck5vZGVSYXJlRGF0YTo6aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdAor
eworICAgIHJldHVybiBtX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Cit9CisKK2lu
bGluZSBzaXplX3QgQ29udGFpbmVyTm9kZVJhcmVEYXRhOjpudW1iZXJPZlNjb3BlZEhUTUxTdHls
ZUNoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9udW1iZXJPZlNjb3BlZEhUTUxTdHls
ZUNoaWxkcmVuOworfQorCit9CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCA5YjAyM2RmMWY5ZGVmYTI3ZjcyMDBlODkzOTBmNDFiY2QxNDdlNjZhLi5jMGQzM2Ni
M2E1OTk3YmVlNzgwODE0MDExY2Q2YjI1OTE0ZWRlZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC04NjIsNiArODYyLDggQEAgdm9pZCBFbGVtZW50Ojp3aWxsUmVtb3ZlKCkKICAgICBpZiAo
Y29udGFpbnNGdWxsU2NyZWVuRWxlbWVudCgpKQogICAgICAgICBzZXRDb250YWluc0Z1bGxTY3Jl
ZW5FbGVtZW50T25BbmNlc3RvcnNDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhmYWxzZSk7CiAjZW5k
aWYKKyAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQorICAgICAgICBz
aGFkb3ctPndpbGxSZW1vdmUoKTsKICAgICBDb250YWluZXJOb2RlOjp3aWxsUmVtb3ZlKCk7CiB9
CiAKQEAgLTE3NTQsMzAgKzE3NTYsNiBAQCB1bnNpZ25lZCBFbGVtZW50OjpjaGlsZEVsZW1lbnRD
b3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIGNvdW50OwogfQogCi0jaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKLWJvb2wgRWxlbWVudDo6aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdAotewot
ICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPmhhc1Njb3BlZEhUTUxTdHls
ZUNoaWxkKCk7Ci19Ci0KLXNpemVfdCBFbGVtZW50OjpudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNo
aWxkcmVuKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCkt
Pm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oKSA6IDA7Ci19Ci0KLXZvaWQgRWxlbWVu
dDo6cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCi17Ci0gICAgZW5zdXJlUmFyZURhdGEo
KS0+cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotfQotCi12b2lkIEVsZW1lbnQ6OnVu
cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCi17Ci0gICAgQVNTRVJUKGhhc1JhcmVEYXRh
KCkpOwotICAgIGlmIChoYXNSYXJlRGF0YSgpKQotICAgICAgICByYXJlRGF0YSgpLT51bnJlZ2lz
dGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKLX0KLSNlbmRpZgotCiBib29sIEVsZW1lbnQ6Ondl
YmtpdE1hdGNoZXNTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAoc2VsZWN0b3IuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApp
bmRleCA5MzgxZTJmNTgxNTg3ZDczMjU3MGE4MzE0OTQyODM0ODQxOTdmODI5Li5jYTI0ZTNmOTU0
NzBjNGYxYjg1MjYzMjFkNGI3NWUyYWIyOTc1ODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMy
MywxMyArMzIzLDYgQEAgcHVibGljOgogICAgIEVsZW1lbnQqIG5leHRFbGVtZW50U2libGluZygp
IGNvbnN0OwogICAgIHVuc2lnbmVkIGNoaWxkRWxlbWVudENvdW50KCkgY29uc3Q7CiAKLSNpZiBF
TkFCTEUoU1RZTEVfU0NPUEVEKQotICAgIHZvaWQgcmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGls
ZCgpOwotICAgIHZvaWQgdW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7Ci0gICAgYm9v
bCBoYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZlNj
b3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3Q7Ci0jZW5kaWYKLQogICAgIGJvb2wgd2Via2l0
TWF0Y2hlc1NlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHRpb25Db2RlJik7
CiAKICAgICBET01Ub2tlbkxpc3QqIGNsYXNzTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRS
YXJlRGF0YS5oCmluZGV4IGNhMzIxMTVlNjE4NDY0ODdjMTkxZDlmYWEyODQ3MDZmMmVlMDJhZjgu
LmU5OGE3YzExNjUxNmY1YTZiODZlZjc0OTZkYzMxMTk5YTQyNjQ2YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTIzLDMwICsyMywyOSBAQAogI2RlZmluZSBFbGVtZW50
UmFyZURhdGFfaAogCiAjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCisjaW5jbHVkZSAiQ29udGFpbmVy
Tm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgotI2luY2x1ZGUgIk5v
ZGVSYXJlRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBTaGFkb3dSb290OwogCi1jbGFzcyBFbGVtZW50UmFyZURhdGEgOiBwdWJs
aWMgTm9kZVJhcmVEYXRhIHsKKyNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQordHlwZWRlZiBDb250
YWluZXJOb2RlUmFyZURhdGEgRWxlbWVudFJhcmVEYXRhQmFzZTsKKyNlbHNlCit0eXBlZGVmIE5v
ZGVSYXJlRGF0YSBFbGVtZW50UmFyZURhdGFCYXNlOworI2VuZGlmCisKK2NsYXNzIEVsZW1lbnRS
YXJlRGF0YSA6IHB1YmxpYyBFbGVtZW50UmFyZURhdGFCYXNlIHsKIHB1YmxpYzoKICAgICBFbGVt
ZW50UmFyZURhdGEoKTsKICAgICB2aXJ0dWFsIH5FbGVtZW50UmFyZURhdGEoKTsKIAogICAgIHZv
aWQgcmVzZXRDb21wdXRlZFN0eWxlKCk7CiAKLSNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQotICAg
IHZvaWQgcmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotICAgIHZvaWQgdW5yZWdpc3Rl
clNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7Ci0gICAgYm9vbCBoYXNTY29wZWRIVE1MU3R5bGVDaGls
ZCgpIGNvbnN0OwotICAgIHNpemVfdCBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkg
Y29uc3Q7Ci0jZW5kaWYKLQogICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6bmVlZHNGb2N1c0FwcGVh
cmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2g7CiAgICAgdXNpbmcgTm9kZVJhcmVEYXRhOjpzZXRO
ZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaDsKIApAQCAtNzUsMTAgKzc0
LDYgQEAgcHVibGljOgogICAgIFNoYWRvd1Jvb3QqIG1fc2hhZG93Um9vdDsKICAgICBBdG9taWNT
dHJpbmcgbV9zaGFkb3dQc2V1ZG9JZDsKIAotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi0gICAg
c2l6ZV90IG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbjsKLSNlbmRpZgotCiAgICAg
T3duUHRyPERhdGFzZXRET01TdHJpbmdNYXA+IG1fZGF0YXNldERPTVN0cmluZ01hcDsKICAgICBP
d25QdHI8Q2xhc3NMaXN0PiBtX2NsYXNzTGlzdDsKIApAQCAtOTUsMTEgKzkwLDkgQEAgaW5saW5l
IEludFNpemUgZGVmYXVsdE1pbmltdW1TaXplRm9yUmVzaXppbmcoKQogfQogCiBpbmxpbmUgRWxl
bWVudFJhcmVEYXRhOjpFbGVtZW50UmFyZURhdGEoKQotICAgIDogbV9taW5pbXVtU2l6ZUZvclJl
c2l6aW5nKGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkpCisgICAgOiBFbGVtZW50UmFy
ZURhdGFCYXNlKCkKKyAgICAsIG1fbWluaW11bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11
bVNpemVGb3JSZXNpemluZygpKQogICAgICwgbV9zaGFkb3dSb290KDApCi0jaWYgRU5BQkxFKFNU
WUxFX1NDT1BFRCkKLSAgICAsIG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigwKQot
I2VuZGlmCiAgICAgLCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKICAgICAsIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChmYWxzZSkK
QEAgLTExNywyOSArMTEwLDUgQEAgaW5saW5lIHZvaWQgRWxlbWVudFJhcmVEYXRhOjpyZXNldENv
bXB1dGVkU3R5bGUoKQogICAgIG1fY29tcHV0ZWRTdHlsZS5jbGVhcigpOwogfQogCi0jaWYgRU5B
QkxFKFNUWUxFX1NDT1BFRCkKLWlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0YTo6cmVnaXN0ZXJT
Y29wZWRIVE1MU3R5bGVDaGlsZCgpCi17Ci0gICAgKyttX251bWJlck9mU2NvcGVkSFRNTFN0eWxl
Q2hpbGRyZW47Ci19Ci0KLWlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0YTo6dW5yZWdpc3RlclNj
b3BlZEhUTUxTdHlsZUNoaWxkKCkKLXsKLSAgICBBU1NFUlQobV9udW1iZXJPZlNjb3BlZEhUTUxT
dHlsZUNoaWxkcmVuID4gMCk7Ci0gICAgaWYgKG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbiA+IDApCi0gICAgICAgIC0tbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOwot
fQotCi1pbmxpbmUgYm9vbCBFbGVtZW50UmFyZURhdGE6Omhhc1Njb3BlZEhUTUxTdHlsZUNoaWxk
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
OwotfQotCi1pbmxpbmUgc2l6ZV90IEVsZW1lbnRSYXJlRGF0YTo6bnVtYmVyT2ZTY29wZWRIVE1M
U3R5bGVDaGlsZHJlbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbnVtYmVyT2ZTY29wZWRIVE1M
U3R5bGVDaGlsZHJlbjsKLX0KLSNlbmRpZgotCiB9CiAjZW5kaWYgLy8gRWxlbWVudFJhcmVEYXRh
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCA5YmE2OGJkMzU4MTEzY2RiMWJmMDA4
OWI0Njc3MjIwNjliZTc2NmJkLi5kZGQ3YzNjYjRjN2NkYjkxNTAxNTJiZWFhZTA1MDM4MTA2ODFi
MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAKKyNpbmNsdWRlICJD
b250YWluZXJOb2RlUmFyZURhdGEuaCIKICNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0
b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKLSNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNp
bmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDQxNTZjZTVmMWViM2FhYjlkZDBjZTNkZTM4NjMw
NGJmOWQyYjg3M2IuLjBjMDY0NDU3YjQxYTlkODI2ZDg1ZWM4NTRjNzY1NTg0ZTZkNTk3NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApAQCAtODgsOSArODgsMTUg
QEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSgpCiAgICAg
QVNTRVJUKCFtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSk7CiAgICAgQVNTRVJUKGluRG9j
dW1lbnQoKSk7CiAgICAgaWYgKCFtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSkgewotICAg
ICAgICBFbGVtZW50KiBzY29wZSA9IHBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgQ29udGFpbmVy
Tm9kZSogc2NvcGUgPSBwYXJlbnROb2RlKCk7CiAgICAgICAgIGlmICghc2NvcGUpCiAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGlmICghc2NvcGUtPmlzRWxlbWVudE5vZGUoKSAmJiAhc2Nv
cGUtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICAvLyBEb2N1bWVudEZyYWdtZW50IG5v
ZGVzIHNob3VsZCBuZXZlciBiZSBpbkRvY3VtZW50LAorICAgICAgICAgICAgLy8gPHN0eWxlPiBz
aG91bGQgbm90IGJlIGEgY2hpbGQgb2YgRG9jdW1lbnQsIFBJIG9yIHNvbWUgc3VjaC4KKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CiAKICAgICAgICAgc2NvcGUtPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKICAg
ICAgICAgc2NvcGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKQEAgLTEwNyw3ICsxMTMsNyBAQCB2
b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUoKQogICAgIC8v
IFRoZXJlZm9yZSB3ZSBjYW5ub3QgcmVseSBvbiBzY29wZWQoKSEKICAgICBBU1NFUlQobV9pc1Jl
Z2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpOwogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFdpdGhTY29w
aW5nTm9kZSkgewotICAgICAgICBFbGVtZW50KiBzY29wZSA9IHBhcmVudEVsZW1lbnQoKTsKKyAg
ICAgICAgQ29udGFpbmVyTm9kZSogc2NvcGUgPSBwYXJlbnROb2RlKCk7CiAgICAgICAgIEFTU0VS
VChzY29wZSk7CiAgICAgICAgIGlmIChzY29wZSkgewogICAgICAgICAgICAgQVNTRVJUKHNjb3Bl
LT5oYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCAxMjEyZjhkNzg4MGExYTc0MDBjMTE4ODJiYzgwZWE1Y2Q3MDJjZGEyLi5kNjU4
ODI3Zjk3ZjhjYTU3ZTJiMTc3NjllMWZjZWFjMjU0YjVmMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0xNzMsMTEgKzE3MywxMSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpl
bGVtZW50UmVuZGVyVHJlZUFzVGV4dChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gcmVwcmVzZW50YXRpb247CiB9CiAKLXNpemVfdCBJbnRlcm5hbHM6Om51
bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oY29uc3QgRWxlbWVudCogZWxlbWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CitzaXplX3QgSW50ZXJuYWxzOjpudW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuKGNvbnN0IE5vZGUqIHNjb3BlLCBFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKIHsKLSAgICBpZiAoZWxlbWVudCkKKyAgICBpZiAoc2NvcGUgJiYgKHNjb3BlLT5pc0VsZW1l
bnROb2RlKCkgfHwgc2NvcGUtPmlzU2hhZG93Um9vdCgpKSkKICNpZiBFTkFCTEUoU1RZTEVfU0NP
UEVEKQotICAgICAgICByZXR1cm4gZWxlbWVudC0+bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbigpOworICAgICAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHNjb3BlKS0+bnVtYmVyT2ZT
Y29wZWRIVE1MU3R5bGVDaGlsZHJlbigpOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIDA7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDU4ZDc1ZDY0YmM0YWRhYTNjMjY3
YmE1MmY3NWQ2ZTQ0MmJiZjdhZjAuLjExZjAxOTJjYzBlZTAxZWU4NjhhMjEyNDc2NzAxZjhkMjUx
NzU3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGlzUHJlbG9hZGVkKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiB1
cmwpOwogCi0gICAgc2l6ZV90IG51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oY29uc3Qg
RWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBzaXplX3QgbnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbihjb25zdCBOb2RlKiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owog
CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCiAgICAgdHlwZWRlZiBTaGFkb3dSb290IFNoYWRvd1Jv
b3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKaW5kZXggNTRmM2Q1NWFiZjgzYjY3MmY1ZTQzNjg0N2Q3NjI5MTA5Y2Y2MjczZS4uN2E0Nzhh
MzIzOGE1ZmU5YmEyYzg3NDY0ZTFlNjk4NmIxMzMyMTc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbApAQCAtMzAsNyArMzAsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
RE9NU3RyaW5nIGVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGJvb2xlYW4gaXNQcmVsb2FkZWQoaW4gRG9jdW1l
bnQgZG9jdW1lbnQsIGluIERPTVN0cmluZyB1cmwpOwogCi0gICAgICAgIHVuc2lnbmVkIGxvbmcg
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mU2NvcGVkSFRN
TFN0eWxlQ2hpbGRyZW4oaW4gTm9kZSBzY29wZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICNp
ZiBkZWZpbmVkKEVOQUJMRV9TSEFET1dfRE9NKQogICAgICAgICBTaGFkb3dSb290IGVuc3VyZVNo
YWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYKaW5kZXggNTQ3ODVjNDIxNDc4NTZhYzZhMTFjYTc4NzhiNjEwMmRjODg4MzZl
OC4uMWEyNmMyNGIzMzkxY2RjZjBlMjA5NDIyYzI2OWQ2MTA0Yjg2YjE2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgpAQCAtMTY4LDcgKzE2OCw3IEBAIEVYUE9SVFMKICAgICAgICAgP21hcmtlcnNG
b3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRv
Y3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAVk1hcmtlclR5cGVzQERv
Y3VtZW50TWFya2VyQDJAQFoKICAgICAgICAgP29ic2VydmVGcmFtZUBGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXJAV2ViQ29yZUBASUFFWFBBVkZyYW1lQDJAQFoKICAgICAgICAgP292ZXJyaWRlVXNl
clByZWZlcnJlZExhbmd1YWdlc0BXZWJDb3JlQEBZQVhBQlY/JFZlY3RvckBWU3RyaW5nQFdURkBA
JDBBQEBXVEZAQEBaCi0gICAgICAgIDsgP251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5A
RWxlbWVudEBXZWJDb3JlQEBRQkVJWFoKKyAgICAgICAgP251bWJlck9mU2NvcGVkSFRNTFN0eWxl
Q2hpbGRyZW5AQ29udGFpbmVyTm9kZUBXZWJDb3JlQEBRQkVJWFoKICAgICAgICAgP3BhZ2VARG9j
dW1lbnRAV2ViQ29yZUBAUUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENvbnRyb2xUaW50
c0BGcmFtZVZpZXdAV2ViQ29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFu
ZExlbmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdl
YkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZgppbmRleCBmYTVjYmY3YzViNjY4YTI2MWM0ZTEzOTQwZjAyNzI4MTc3ZWZkNWY1Li5j
ZWM2ZjBjM2RmMmQwMTdiZjJlNmI4YWM4MzNhNDE1Y2Y2YjRmNmUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjIsNyArMTYyLDcgQEAgRVhQT1JUUwogICAgICAgICA/
bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFP0FWPyRWZWN0
b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5vZGVAMkBWTWFya2Vy
VHlwZXNARG9jdW1lbnRNYXJrZXJAMkBAWgogICAgICAgICA/b2JzZXJ2ZUZyYW1lQEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3JlQEBJQUVYUEFWRnJhbWVAMkBAWgogICAgICAgICA/b3Zl
cnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQFdlYkNvcmVAQFlBWEFCVj8kVmVjdG9yQFZTdHJp
bmdAV1RGQEAkMEFAQFdURkBAQFoKLSAgICAgICAgOyA/bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbkBFbGVtZW50QFdlYkNvcmVAQFFCRUlYWgorICAgICAgICA/bnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbkBDb250YWluZXJOb2RlQFdlYkNvcmVAQFFCRUlYWgogICAgICAgICA/
cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29u
dHJvbFRpbnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxv
Y2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBW
UmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEhIX05AWgpkaWZmIC0tZ2l0IGEvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIKaW5kZXggOGVjN2ZkOTFiMmFhMTdmOGFiNmExMDdiMDJiMzJmODhhNWNhNmQ3Ni4uZGJh
MzcyODE2MGFlNTQ3YjEzMzY3ZDNkOThiMWQzNTBhZWFhNDk3OSAxMDA2NDQKLS0tIGEvU291cmNl
L2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCkBAIC03OCwxMSArNzgsMTEgQEAgX1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1VzZXJFZGl0RXY7CiBfWk5LN1dlYkNvcmU1RnJhbWU4
c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05vZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQ
TjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNoYWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxl
bWVudDEwc2hhZG93Um9vdEV2OwotX1pOSzdXZWJDb3JlN0VsZW1lbnQzMW51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW5FdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CiBfWk5L
N1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3
RXY7CiBfWk5LN1dlYkNvcmU5VHJlZVNjb3BlMTRnZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFOworX1pOSzdXZWJDb3JlMTNDb250YWluZXJOb2RlMzFudW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuRXY7CiBfWk43V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyOHNldFNjcm9s
bE9mZnNldEZyb21JbnRlcm5hbHNFUktOU184SW50UG9pbnRFOwogX1pON1dlYkNvcmUxMFNjcm9s
bFZpZXcyM3NldFNjcm9sbGJhcnNTdXBwcmVzc2VkRWJiOwogX1pON1dlYkNvcmU4U2V0dGluZ3My
NHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEViOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgzMGJjYjQ4M2IwZmQwMWViYmY5
NGIzMzkwZjcxZmQxYTJjMWY5MGMuLmQ5YjdlMzlhY2Y4NDJjMzUyMWQ5Y2Y1ZDQ0Yzg5MDM2ZjMy
M2VhMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0wNiAgUm9sYW5kIFN0ZWluZXIg
IDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KKworICAgICAgICA8c3R5bGUgc2NvcGVkPjog
QWxsb3cgPHN0eWxlIHNjb3BlZD4gYXMgYSBkaXJlY3QgY2hpbGQgb2YgYSBTaGFkb3dSb290Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg1MworCisg
ICAgICAgIFRlc3QgcmVnaXN0cmF0aW9uIG9mIDxzdHlsZSBzY29wZWQ+IGFzIGEgZGlyZWN0IGNo
aWxkIG9mIGEgU2hhZG93Um9vdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdpc3RlcmluZy1zaGFkb3dy
b290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3JlZ2lzdGVyaW5nLXNoYWRvd3Jvb3QuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMDggIElnb3Ig
T2xpdmVpcmEgIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQg
cmV2ZXJzZSBhbmltYXRpb24gZGlyZWN0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQyZTk4ZjcxMTc2MjQwMDVlZDMxMzQ5ZWUwNzdiM2Ni
MDk0NzNkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNj
b3BlZC9yZWdpc3RlcmluZy1zaGFkb3dyb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBA
CitUZXN0IGhhdmluZyBhIDxzdHlsZSBzY29wZWQ+IGVsZW1lbnQgYXMgYSBkaXJlY3QgY2hpbGQg
b2YgYSBTaGFkb3dSb290LgorCistLS0gSW5pdGlhbCAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJl
ck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikgaXMgMAorLS0tIEF0dGFjaGluZyA8c3R5
bGUgc2NvcGVkPiAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hp
bGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbihzcikgaXMgMQorLS0tIFJlbW92aW5nIGhvc3QgLS0tCitQQVNTIGludGVybmFscy5u
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIGlzIDAKK1BBU1MgaW50ZXJuYWxz
Lm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIGlzIDAKKy0tLSBJbnNlcnRpbmcg
aG9zdCAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4o
aG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJl
bihzcikgaXMgMQorLS0tIFVuc2V0dGluZyBAc2NvcGVkIC0tLQorUEFTUyBpbnRlcm5hbHMubnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSBpcyAwCitQQVNTIGludGVybmFscy5u
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSBpcyAwCistLS0gU2V0dGluZyBAc2Nv
cGVkIC0tLQorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiho
b3N0KSBpcyAwCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
KHNyKSBpcyAxCistLS0gRGV0YWNoaW5nIDxzdHlsZSBzY29wZWQ+IC0tLQorUEFTUyBpbnRlcm5h
bHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSBpcyAwCitQQVNTIGludGVy
bmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSBpcyAwCistLS0gQXR0YWNo
aW5nIDxzdHlsZSBzY29wZWQ+IHVuZGVyIGhvc3QgLS0tCitQQVNTIGludGVybmFscy5udW1iZXJP
ZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIGlzIDEKK1BBU1MgaW50ZXJuYWxzLm51bWJl
ck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIGlzIDAKKy0tLSBET05FIC0tLQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdpc3RlcmluZy1zaGFkb3dyb290
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hh
ZG93cm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNGM1NDczNGNiMTZhMDRmZTZmN2NhZDExOTU5NjFl
NWQ4MDY4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1z
Y29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzxodG1s
PgorPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+
VGVzdCBoYXZpbmcgYSAmbHQ7c3R5bGUgc2NvcGVkJmd0OyBlbGVtZW50IGFzIGEgZGlyZWN0IGNo
aWxkIG9mIGEgU2hhZG93Um9vdC48L3A+CisgICAgPGRpdiBpZD0iaG9zdCI+CisgICAgPC9kaXY+
CisgICAgPGRpdiBpZD0icmVmIj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICAgICAgZGVidWcoIndpbmRvd3MuaW50ZXJuYWxzIG5vdCBmb3VuZCEiKTsKKyAgICAg
ICAgZWxzZSBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCkKKyAgICAgICAg
ICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5lbnN1cmVTaGFkb3dSb290IG5vdCBmb3VuZCEi
KTsKKyAgICAgICAgZWxzZSBpZiAoIXdpbmRvdy5pbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1M
U3R5bGVDaGlsZHJlbikKKyAgICAgICAgICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5udW1i
ZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIG5vdCBmb3VuZCEiKTsKKyAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICB2YXIgcmVmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZicpOwor
ICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwor
ICAgICAgICAgICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoaG9zdCk7Cisg
ICAgICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwor
ICAgICAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdzY29wZWQnLCAnc2NvcGVkJyk7CisKKyAg
ICAgICAgICAgIGRlYnVnKCItLS0gSW5pdGlhbCAtLS0iKTsKKyAgICAgICAgICAgIHNob3VsZEJl
KCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSIsICIwIik7
CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxl
Q2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBvdXQgb2YgZG9jdW1lbnQsIHNjb3BlZCAq
LworCisgICAgICAgICAgICBkZWJ1ZygiLS0tIEF0dGFjaGluZyAmbHQ7c3R5bGUgc2NvcGVkJmd0
OyAtLS0iKTsKKyAgICAgICAgICAgIHNyLmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0
KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjEiKTsgLyogPHN0eWxlPiBpbiBzaGFkb3csIHNjb3Bl
ZCAqLworCisgICAgICAgICAgICBkZWJ1ZygiLS0tIFJlbW92aW5nIGhvc3QgLS0tIik7CisgICAg
ICAgICAgICBob3N0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaG9zdCk7CisgICAgICAgICAgICBz
aG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCki
LCAiMCIpOworICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuKHNyKSIsICIwIik7IC8qIDxzdHlsZT4gb3V0IG9mIGRvY3VtZW50LCBz
Y29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBJbnNlcnRpbmcgaG9zdCAtLS0iKTsK
KyAgICAgICAgICAgIHJlZi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShob3N0LCByZWYpOworICAg
ICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxk
cmVuKGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVy
T2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikiLCAiMSIpOyAvKiA8c3R5bGU+IGluIHNoYWRv
dywgc2NvcGVkICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gVW5zZXR0aW5nIEBzY29wZWQg
LS0tIik7CisgICAgICAgICAgICBzdHlsZS5zY29wZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSIs
ICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRN
TFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBpbiBzaGFkb3csIG5vdCBzY29w
ZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBTZXR0aW5nIEBzY29wZWQgLS0tIik7Cisg
ICAgICAgICAgICBzdHlsZS5zY29wZWQgPSB0cnVlOworICAgICAgICAgICAgc2hvdWxkQmUoImlu
dGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIiwgIjAiKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbihzcikiLCAiMSIpOyAvKiA8c3R5bGU+IGluIHNoYWRvdywgc2NvcGVkICovCisKKyAgICAg
ICAgICAgIGRlYnVnKCItLS0gRGV0YWNoaW5nICZsdDtzdHlsZSBzY29wZWQmZ3Q7IC0tLSIpOwor
ICAgICAgICAgICAgc3IucmVtb3ZlQ2hpbGQoc3R5bGUpOworICAgICAgICAgICAgc2hvdWxkQmUo
ImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIiwgIjAiKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbihzcikiLCAiMCIpOyAvKiA8c3R5bGU+IG91dCBvZiBkb2N1bWVudCwgc2NvcGVkICov
CisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gQXR0YWNoaW5nICZsdDtzdHlsZSBzY29wZWQmZ3Q7
IHVuZGVyIGhvc3QgLS0tIik7CisgICAgICAgICAgICBob3N0LmFwcGVuZENoaWxkKHN0eWxlKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbihob3N0KSIsICIxIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51
bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBpbiB0
cmVlLCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBET05FIC0tLSIpOworICAg
ICAgICB9CisgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIDwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCAyOGVlOGZhZThkMzU1MTkwNmMwZDQ1NDczNTAyMTI5NDkzNWY3NWU5Li5m
N2RkM2Y5MTcyZTYxYzY1NDFhZmZkNTAzZTk0MjM4ZTQ5ZTQ2ZDBkIDEwMDY0NAotLS0gYS9DaGFu
Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMDYgIFJvbGFu
ZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPHN0eWxl
IHNjb3BlZD46IEFsbG93IDxzdHlsZSBzY29wZWQ+IGFzIGEgZGlyZWN0IGNoaWxkIG9mIGEgU2hh
ZG93Um9vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzc4NTMKKworICAgICAgICBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIGdvdCBtb3Zl
ZCBmcm9tIEVsZW1lbnQgaW50byBDb250YWluZXJOb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcjoKKwogMjAxMi0wMi0wNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFtDTUFLRV0gVXNlICpiaW4qIGFuZCAqbGliKiBkaXJlY3RvcmllcyBm
b3IgZXhlY3V0YWJsZSBhbmQgbGlicmFyaWVzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126451</attachid>
            <date>2012-02-09 22:06:44 -0800</date>
            <delta_ts>2012-02-09 22:24:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77853-20120210150642.patch</filename>
            <type>text/plain</type>
            <size>25006</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVjMGNmZmJlZGI3YzAz
YTM3YTY2Y2JkYmIxNGI3ZDExZGEyZjE4Ni4uNjE4Zjc1YWU2MmJjNzQxMDhlYmQzMDAzZGU4M2Ni
MjljMWVmZDdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAyLTA5ICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHls
ZSBzY29wZWQ+OiBBbGxvdyA8c3R5bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBjaGlsZCBvZiBhIFNo
YWRvd1Jvb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3ODUzCisKKyAgICAgICAgTW92ZWQgcmVnaXN0cmF0aW9uIGNvZGUgZnJvbSBFbGVtZW50IHRv
IE5vZGUuIHVwZGF0ZWQgSW50ZXJuYWxzIGFuZCBidWlsZCBmaWxlcyBhY2NvcmRpbmdseS4KKyAg
ICAgICAgTW92ZWQgcmVnaXN0cmF0aW9uIGRhdGEgbWVtYmVycyBmcm9tIEVsZW1lbnRSYXJlRGF0
YSB0byBOb2RlUmFyZURhdGEuCisgICAgICAgIEZvcndhcmQgd2lsbFJlbW92ZSgpIGZyb20gaG9z
dCBlbGVtZW50IGludG8gc2hhZG93IERPTSB0cmVlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdp
c3RlcmluZy1zaGFkb3dyb290Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJl
RGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omhhc1Njb3BlZEhU
TUxTdHlsZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Om51bWJlck9mU2NvcGVkSFRN
TFN0eWxlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVnaXN0ZXJTY29wZWRI
VE1MU3R5bGVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjp1bnJlZ2lzdGVyU2NvcGVk
SFRNTFN0eWxlQ2hpbGQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChOb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFy
ZURhdGE6Ok5vZGVSYXJlRGF0YSk6CisgICAgICAgIChOb2RlUmFyZURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNo
aWxkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6aGFzU2NvcGVkSFRNTFN0eWxl
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpudW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuKToKKyAgICAgICAgKiBodG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6dW5yZWdpc3RlcldpdGhT
Y29waW5nTm9kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDItMDkgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdGhlIHNjcm9sbCBsYXll
ciBwb3NpdGlvbiBvbiB0aGUgbWFpbiB0aHJlYWQgd2hlbiB3ZSBoYXZlIHNsb3cgcmVwYWludCBv
YmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWJjM2ZhYWIxZDQ0ZmY0ZTA3NmI2OGJlZGNkZGFiNGU2N2Qy
Nzc2Mi4uNGNiNTI1OGRhNjc1MDNjZDhkN2Y4OGU1YmVlMDYyYWFkY2Q1OWEwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTA5ICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0
ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHlsZSBzY29wZWQ+OiBBbGxvdyA8c3R5
bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBjaGlsZCBvZiBhIFNoYWRvd1Jvb3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODUzCisKKyAgICAgICAgbnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiBnb3QgbW92ZWQgZnJvbSBFbGVtZW50IGludG8g
Tm9kZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIw
MTItMDItMDkgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KIAogICAgICAg
ICBIaURQSTogV2ViS2l0MidzIGRyYWcgaW1hZ2VzIGFyZSBibHVycnkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggZDgzOWM1M2Q5Y2NmNTg5MGUyMDJjNjVmMzhhNjAyNTUyZmQ3MjBhMi4uMTg0ZDdj
YWYyYWQzMTZkMWQ4NGEyZGRiMzIxY2I0NGRjYWM4ZTVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
QEAgLTIwNzQsNiArMjA3NCw0IEBAIF9fWk43V2ViQ29yZTRQYWdlMjBzY3JvbGxpbmdDb29yZGlu
YXRvckV2CiBfX1pOSzdXZWJDb3JlMjBTY3JvbGxpbmdDb29yZGluYXRvcjEzc2Nyb2xsaW5nVHJl
ZUV2CiAjZW5kaWYKIAotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi1fX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdgotI2VuZGlmCitfX1pOSzdX
ZWJDb3JlNE5vZGUzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGRiZDJiNzI1OTYwNzA0ZTkzOGUwNTBiYWE4NTM0
NWYzZGJkZWNhYmQuLjA2NDBjNDQyM2QwZDc4YWE2YzU5MzUxYjBiNmNkODA4ZDBjMmQ0NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5o
IgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQm94LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMzU1ZjM4YWRi
ZTRkMmRmYTNjY2NjMjA0OWE0ZWI2MWZmODY2ZjRiZS4uNTUzZDY1NmRlY2NhY2E5ZDExNmVmMzlh
N2QzNmJmYTRkYzAyMjE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODYyLDYgKzg2Miw4
IEBAIHZvaWQgRWxlbWVudDo6d2lsbFJlbW92ZSgpCiAgICAgaWYgKGNvbnRhaW5zRnVsbFNjcmVl
bkVsZW1lbnQoKSkKICAgICAgICAgc2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0
b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFsc2UpOwogI2VuZGlmCisgICAgaWYgKFNoYWRv
d1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKKyAgICAgICAgc2hhZG93LT53aWxsUmVtb3Zl
KCk7CiAgICAgQ29udGFpbmVyTm9kZTo6d2lsbFJlbW92ZSgpOwogfQogCkBAIC0xNzUxLDMwICsx
NzUzLDYgQEAgdW5zaWduZWQgRWxlbWVudDo6Y2hpbGRFbGVtZW50Q291bnQoKSBjb25zdAogICAg
IHJldHVybiBjb3VudDsKIH0KIAotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi1ib29sIEVsZW1l
bnQ6Omhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUmFy
ZURhdGEoKSAmJiByYXJlRGF0YSgpLT5oYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotfQotCi1z
aXplX3QgRWxlbWVudDo6bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5udW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuKCkgOiAwOwotfQotCi12b2lkIEVsZW1lbnQ6OnJlZ2lzdGVyU2NvcGVk
SFRNTFN0eWxlQ2hpbGQoKQotewotICAgIGVuc3VyZVJhcmVEYXRhKCktPnJlZ2lzdGVyU2NvcGVk
SFRNTFN0eWxlQ2hpbGQoKTsKLX0KLQotdm9pZCBFbGVtZW50Ojp1bnJlZ2lzdGVyU2NvcGVkSFRN
TFN0eWxlQ2hpbGQoKQotewotICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKLSAgICBpZiAoaGFz
UmFyZURhdGEoKSkKLSAgICAgICAgcmFyZURhdGEoKS0+dW5yZWdpc3RlclNjb3BlZEhUTUxTdHls
ZUNoaWxkKCk7Ci19Ci0jZW5kaWYKLQogYm9vbCBFbGVtZW50Ojp3ZWJraXRNYXRjaGVzU2VsZWN0
b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYg
KHNlbGVjdG9yLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOTM4MWUyZjU4MTU4
N2Q3MzI1NzBhODMxNDk0MjgzNDg0MTk3ZjgyOS4uY2EyNGUzZjk1NDcwYzRmMWI4NTI2MzIxZDRi
NzVlMmFiMjk3NTgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMjMsMTMgKzMyMyw2IEBAIHB1
YmxpYzoKICAgICBFbGVtZW50KiBuZXh0RWxlbWVudFNpYmxpbmcoKSBjb25zdDsKICAgICB1bnNp
Z25lZCBjaGlsZEVsZW1lbnRDb3VudCgpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BF
RCkKLSAgICB2b2lkIHJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKLSAgICB2b2lkIHVu
cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotICAgIGJvb2wgaGFzU2NvcGVkSFRNTFN0
eWxlQ2hpbGQoKSBjb25zdDsKLSAgICBzaXplX3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbigpIGNvbnN0OwotI2VuZGlmCi0KICAgICBib29sIHdlYmtpdE1hdGNoZXNTZWxlY3Rvcihj
b25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgRE9NVG9rZW5M
aXN0KiBjbGFzc0xpc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBj
YTMyMTE1ZTYxODQ2NDg3YzE5MWQ5ZmFhMjg0NzA2ZjJlZTAyYWY4Li5kNzA4M2Q5MzM5ZTIyYzQw
ZmE1ODk3ZmVhMmI2ZmY1NzFhZGVmZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5oCkBAIC00MCwxMyArNDAsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0Q29tcHV0ZWRT
dHlsZSgpOwogCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICB2b2lkIHJlZ2lzdGVyU2Nv
cGVkSFRNTFN0eWxlQ2hpbGQoKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVD
aGlsZCgpOwotICAgIGJvb2wgaGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdDsKLSAgICBz
aXplX3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0OwotI2VuZGlmCi0K
ICAgICB1c2luZyBOb2RlUmFyZURhdGE6Om5lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFm
dGVyQXR0YWNoOwogICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6c2V0TmVlZHNGb2N1c0FwcGVhcmFu
Y2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2g7CiAKQEAgLTc1LDEwICs2OCw2IEBAIHB1YmxpYzoKICAg
ICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3Q7CiAgICAgQXRvbWljU3RyaW5nIG1fc2hhZG93UHNl
dWRvSWQ7CiAKLSNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQotICAgIHNpemVfdCBtX251bWJlck9m
U2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Ci0jZW5kaWYKLQogICAgIE93blB0cjxEYXRhc2V0RE9N
U3RyaW5nTWFwPiBtX2RhdGFzZXRET01TdHJpbmdNYXA7CiAgICAgT3duUHRyPENsYXNzTGlzdD4g
bV9jbGFzc0xpc3Q7CiAKQEAgLTk1LDExICs4NCw5IEBAIGlubGluZSBJbnRTaXplIGRlZmF1bHRN
aW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkKIH0KIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxl
bWVudFJhcmVEYXRhKCkKLSAgICA6IG1fbWluaW11bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWlu
aW11bVNpemVGb3JSZXNpemluZygpKQorICAgIDogTm9kZVJhcmVEYXRhKCkKKyAgICAsIG1fbWlu
aW11bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpKQogICAg
ICwgbV9zaGFkb3dSb290KDApCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICAsIG1fbnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigwKQotI2VuZGlmCiAgICAgLCBtX3N0eWxlQWZm
ZWN0ZWRCeUVtcHR5KGZhbHNlKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAsIG1f
Y29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChmYWxzZSkKQEAgLTExNywyOSArMTA0LDUgQEAgaW5s
aW5lIHZvaWQgRWxlbWVudFJhcmVEYXRhOjpyZXNldENvbXB1dGVkU3R5bGUoKQogICAgIG1fY29t
cHV0ZWRTdHlsZS5jbGVhcigpOwogfQogCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLWlubGlu
ZSB2b2lkIEVsZW1lbnRSYXJlRGF0YTo6cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCi17
Ci0gICAgKyttX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Ci19Ci0KLWlubGluZSB2
b2lkIEVsZW1lbnRSYXJlRGF0YTo6dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkKLXsK
LSAgICBBU1NFUlQobV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuID4gMCk7Ci0gICAg
aWYgKG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiA+IDApCi0gICAgICAgIC0tbV9u
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOwotfQotCi1pbmxpbmUgYm9vbCBFbGVtZW50
UmFyZURhdGE6Omhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOwotfQotCi1pbmxpbmUgc2l6ZV90IEVs
ZW1lbnRSYXJlRGF0YTo6bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbjsKLX0KLSNlbmRp
ZgotCiB9CiAjZW5kaWYgLy8gRWxlbWVudFJhcmVEYXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAz
OWI4ZmE4OTVjZGY3YjIxNDM4OTNiOWRkNWY1Mjc5ZDM2ZTZkZDA0Li4yMWExYmE0NjkwNDIxZWU3
NzU0ZjU0NzVhODc4YjJiOGMyYTM2MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNzIxLDYgKzI3
MjEsMzkgQEAgdm9pZCBOb2RlOjpub3RpZnlNdXRhdGlvbk9ic2VydmVyc05vZGVXaWxsRGV0YWNo
KCkKIH0KICNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogCisjaWYgRU5BQkxF
KFNUWUxFX1NDT1BFRCkKK2Jvb2wgTm9kZTo6aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25z
dAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPmhhc1Njb3BlZEhU
TUxTdHlsZUNoaWxkKCk7Cit9CisKK3NpemVfdCBOb2RlOjpudW1iZXJPZlNjb3BlZEhUTUxTdHls
ZUNoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRh
KCktPm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oKSA6IDA7Cit9CisKK3ZvaWQgTm9k
ZTo6cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCit7CisgICAgZW5zdXJlUmFyZURhdGEo
KS0+cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOworfQorCit2b2lkIE5vZGU6OnVucmVn
aXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCit7CisgICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkp
OworICAgIGlmIChoYXNSYXJlRGF0YSgpKQorICAgICAgICByYXJlRGF0YSgpLT51bnJlZ2lzdGVy
U2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKK30KKyNlbHNlCitib29sIE5vZGU6Omhhc1Njb3BlZEhU
TUxTdHlsZUNoaWxkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworc2l6ZV90IE5vZGU6
Om51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiAw
OworfQorI2VuZGlmCiAKIHZvaWQgTm9kZTo6aGFuZGxlTG9jYWxFdmVudHMoRXZlbnQqIGV2ZW50
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKaW5kZXggMzExYmQ0MTE3Y2ZmOWU3NDBhZjYwYmZmY2I3OTZiZjAwYzM4
OTA2MC4uZjNlZWI4ZjQ1YjZmYTcwZDA5YTg2NTQ4Mjk3YzM1MGVlNzRlMzcxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCkBAIC02MzIsNiArNjMyLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeU11dGF0aW9u
T2JzZXJ2ZXJzTm9kZVdpbGxEZXRhY2goKTsKICNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JT
RVJWRVJTKQogCisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICB2b2lkIHJlZ2lzdGVyU2Nv
cGVkSFRNTFN0eWxlQ2hpbGQoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVD
aGlsZCgpOworI2VuZGlmCisgICAgYm9vbCBoYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpIGNvbnN0
OworICAgIHNpemVfdCBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3Q7CisK
IHByaXZhdGU6CiAgICAgZW51bSBOb2RlRmxhZ3MgewogICAgICAgICBJc1RleHRGbGFnID0gMSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCA3N2I5MjBkMWI1M2E1ZTFjMWJlZjI2MzRk
MDMxYTJlYjE0ZmFjYzc4Li4wODY0YjI2MjZjYzNhNTNlZjNmZGIwMWUxNDU0M2I1NmY4YzA5M2Mw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0xMDAsNiArMTAwLDkgQEAgcHVibGlj
OgogICAgICAgICAsIG1fdGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5KGZhbHNlKQogICAgICAgICAs
IG1faXNGb2N1c2VkKGZhbHNlKQogICAgICAgICAsIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRh
dGVTb29uQWZ0ZXJBdHRhY2goZmFsc2UpCisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICAg
ICAgLCBtX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oMCkKKyNlbmRpZgogICAgIHsK
ICAgICB9CiAKQEAgLTIyNiw2ICsyMjksMzAgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICB2b2lkIHJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxl
Q2hpbGQoKQorICAgIHsKKyAgICAgICAgKyttX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRy
ZW47CisgICAgfQorCisgICAgdm9pZCB1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiA+
IDApOworICAgICAgICBpZiAobV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuID4gMCkK
KyAgICAgICAgICAgIC0tbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOworICAgIH0K
KworICAgIGJvb2wgaGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbjsKKyAgICB9CisKKyAg
ICBzaXplX3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOworICAgIH0K
KyNlbmRpZgorCiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNl
ZDsgfQogICAgIHZvaWQgc2V0Rm9jdXNlZChib29sIGZvY3VzZWQpIHsgbV9pc0ZvY3VzZWQgPSBm
b2N1c2VkOyB9CiAKQEAgLTI1Nyw2ICsyODQsMTAgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJl
ZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtVHlwZTsKICAgICBtdXRhYmxlIE93blB0
cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IG1fcHJvcGVydGllczsKICNlbmRpZgorCisjaWYg
RU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICBzaXplX3QgbV9udW1iZXJPZlNjb3BlZEhUTUxTdHls
ZUNoaWxkcmVuOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA0MTU2Y2U1ZjFlYjNhYWI5ZGQw
Y2UzZGUzODYzMDRiZjlkMmI4NzNiLi4wYzA2NDQ1N2I0MWE5ZDgyNmQ4NWVjODU0Yzc2NTU4NGU2
ZDU5NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTg4
LDkgKzg4LDE1IEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05v
ZGUoKQogICAgIEFTU0VSVCghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpOwogICAgIEFT
U0VSVChpbkRvY3VtZW50KCkpOwogICAgIGlmICghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05v
ZGUpIHsKLSAgICAgICAgRWxlbWVudCogc2NvcGUgPSBwYXJlbnRFbGVtZW50KCk7CisgICAgICAg
IENvbnRhaW5lck5vZGUqIHNjb3BlID0gcGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIXNjb3Bl
KQogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoIXNjb3BlLT5pc0VsZW1lbnROb2Rl
KCkgJiYgIXNjb3BlLT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgLy8gRG9jdW1lbnRG
cmFnbWVudCBub2RlcyBzaG91bGQgbmV2ZXIgYmUgaW5Eb2N1bWVudCwKKyAgICAgICAgICAgIC8v
IDxzdHlsZT4gc2hvdWxkIG5vdCBiZSBhIGNoaWxkIG9mIERvY3VtZW50LCBQSSBvciBzb21lIHN1
Y2guCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQogCiAgICAgICAgIHNjb3BlLT5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNo
aWxkKCk7CiAgICAgICAgIHNjb3BlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CkBAIC0xMDcsNyAr
MTEzLDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2Rl
KCkKICAgICAvLyBUaGVyZWZvcmUgd2UgY2Fubm90IHJlbHkgb24gc2NvcGVkKCkhCiAgICAgQVNT
RVJUKG1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlKTsKICAgICBpZiAobV9pc1JlZ2lzdGVy
ZWRXaXRoU2NvcGluZ05vZGUpIHsKLSAgICAgICAgRWxlbWVudCogc2NvcGUgPSBwYXJlbnRFbGVt
ZW50KCk7CisgICAgICAgIENvbnRhaW5lck5vZGUqIHNjb3BlID0gcGFyZW50Tm9kZSgpOwogICAg
ICAgICBBU1NFUlQoc2NvcGUpOwogICAgICAgICBpZiAoc2NvcGUpIHsKICAgICAgICAgICAgIEFT
U0VSVChzY29wZS0+aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggMDZlMzRjZDNjYmJjMGRlMTc4YjEyMTdmYTQwMzg5OWI3MjA5
N2JmNi4uYjdkNWEzNGExMDM3ZTVjZjJmZWQxMGExN2I2M2Y3MzAxM2I5NTIzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTczLDExICsxNzMsMTEgQEAgU3RyaW5nIElu
dGVybmFsczo6ZWxlbWVudFJlbmRlclRyZWVBc1RleHQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIHJlcHJlc2VudGF0aW9uOwogfQogCi1zaXplX3QgSW50
ZXJuYWxzOjpudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAorc2l6ZV90IEludGVybmFsczo6bnVtYmVy
T2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihjb25zdCBOb2RlKiBzY29wZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiB7Ci0gICAgaWYgKGVsZW1lbnQpCisgICAgaWYgKHNjb3BlICYmIChzY29w
ZS0+aXNFbGVtZW50Tm9kZSgpIHx8IHNjb3BlLT5pc1NoYWRvd1Jvb3QoKSkpCiAjaWYgRU5BQkxF
KFNUWUxFX1NDT1BFRCkKLSAgICAgICAgcmV0dXJuIGVsZW1lbnQtPm51bWJlck9mU2NvcGVkSFRN
TFN0eWxlQ2hpbGRyZW4oKTsKKyAgICAgICAgcmV0dXJuIHNjb3BlLT5udW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuKCk7CiAjZWxzZQogICAgICAgICByZXR1cm4gMDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDM5ZGM3NWM2ZTE1ZmJjYWU4MmM2N2NhZmU3
OWYwYjIxYWZkYmUwZS4uNmVkNzlkYmZkNWEzMzA1OTY3YTgyOWRhMzA5ZTZmNGU2YTIzZTQxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaXNQcmVsb2FkZWQoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAK
LSAgICBzaXplX3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihjb25zdCBFbGVtZW50
KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIHNpemVfdCBudW1iZXJPZlNjb3BlZEhUTUxT
dHlsZUNoaWxkcmVuKGNvbnN0IE5vZGUqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICNpZiBF
TkFCTEUoU0hBRE9XX0RPTSkKICAgICB0eXBlZGVmIFNoYWRvd1Jvb3QgU2hhZG93Um9vdElmU2hh
ZG93RE9NRW5hYmxlZE9yTm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRl
eCA5YmYwNTc1MWQ5YjZhMmY0YTgxZjA3MDk5YzkzYzdhNmQzYThhMDUzLi43ZjBjNDc0Nzc3NTEz
ODBlY2Q3NzEwMTZiNGM2MGI2ZjEyYzQxZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCkBAIC0zMCw3ICszMCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBET01TdHJp
bmcgZWxlbWVudFJlbmRlclRyZWVBc1RleHQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgYm9vbGVhbiBpc1ByZWxvYWRlZChpbiBEb2N1bWVudCBkb2N1
bWVudCwgaW4gRE9NU3RyaW5nIHVybCk7CiAKLSAgICAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJP
ZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVD
aGlsZHJlbihpbiBOb2RlIHNjb3BlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogI2lmIGRlZmlu
ZWQoRU5BQkxFX1NIQURPV19ET00pCiAgICAgICAgIFNoYWRvd1Jvb3QgZW5zdXJlU2hhZG93Um9v
dChpbiBFbGVtZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgppbmRleCA3NjgzMGUwMWM5ZGM0MzYxNTVmMjJjZGNmYjViNjM4NTgwYTlhZjM4Li4xNjRm
N2ViOTNkY2E2ZWMzNzBjNDFmZjJkZDhlYmM0YmFlOWRkZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCkBAIC0xNjksNyArMTY5LDcgQEAgRVhQT1JUUwogICAgICAgICA/bWFya2Vyc0ZvckBEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFP0FWPyRWZWN0b3JAUEFWRG9jdW1lbnRN
YXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5vZGVAMkBWTWFya2VyVHlwZXNARG9jdW1lbnRN
YXJrZXJAMkBAWgogICAgICAgICA/b2JzZXJ2ZUZyYW1lQEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ckBXZWJDb3JlQEBJQUVYUEFWRnJhbWVAMkBAWgogICAgICAgICA/b3ZlcnJpZGVVc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzQFdlYkNvcmVAQFlBWEFCVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdU
RkBAQFoKLSAgICAgICAgOyA/bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkBFbGVtZW50
QFdlYkNvcmVAQFFCRUlYWgorICAgICAgICA/bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJl
bkBOb2RlQFdlYkNvcmVAQFFCRUlYWgogICAgICAgICA/cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBR
QkVQQVZQYWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29udHJvbFRpbnRzQEZyYW1lVmlld0BXZWJD
b3JlQEBBQUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVy
YXRvckBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFW
RWxlbWVudEAyQEhIX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
RkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDNh
OTI3YzI3Y2VlNjlmY2FjMmE0NjY4NmQ4NzE0MGQyMTNjMzIzMDUuLmY4ZmI3N2VlYWJlY2JkNWU5
MGU3NmQ0YWViOTY2M2ExOGNmOWIyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYKQEAgLTE2Myw3ICsxNjMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9tYXJrZXJzRm9yQERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZlY3RvckBQQVZEb2N1bWVudE1h
cmtlckBXZWJDb3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQFZNYXJrZXJUeXBlc0BEb2N1bWVudE1h
cmtlckAyQEBaCiAgICAgICAgID9vYnNlcnZlRnJhbWVARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
QFdlYkNvcmVAQElBRVhQQVZGcmFtZUAyQEBaCiAgICAgICAgID9vdmVycmlkZVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNAV2ViQ29yZUBAWUFYQUJWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RG
QEBAWgotICAgICAgICA7ID9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuQEVsZW1lbnRA
V2ViQ29yZUBAUUJFSVhaCisgICAgICAgID9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
QE5vZGVAV2ViQ29yZUBAUUJFSVhaCiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFC
RVBBVlBhZ2VAMkBYWgogICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNv
cmVAQEFBRVhYWgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJh
dG9yQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZF
bGVtZW50QDJASEhfTkBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA1ZTllYjM0Y2U1NDcy
MTE4MjE2Mzg0OTg0ZGYwNGRhYzNkMTVmMDhlLi5jZTM3ZTI3NTExOWM0NjQ3ZGU4YWQ1NzVlMmU5
NmQ2NDdmYmRlYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTcxLDYgKzcxLDcgQEAg
X1pON1dlYkNvcmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlOUpTRWxlbWVu
dDEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pT
VmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19p
bmZvRTsKIF9aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRTsKK19aTks3V2ViQ29y
ZTROb2RlMzFudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuRXY7CiBfWk5LN1dlYkNvcmUx
MlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RFYjsKIF9aTks3V2ViQ29yZTE2
SFRNTElucHV0RWxlbWVudDE0c3VnZ2VzdGVkVmFsdWVFdjsKIF9aTks3V2ViQ29yZTE3SlNET01H
bG9iYWxPYmplY3QyMnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFdjsKQEAgLTc5LDcgKzgwLDYgQEAg
X1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1Vz
ZXJFZGl0RXY7CiBfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZK
U05vZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29w
ZUNoYWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2OwotX1pOSzdX
ZWJDb3JlN0VsZW1lbnQzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdjsKIF9aTks3
V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NF
djsKIF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzA4NDcxMzEzZWFmMzRj
YTAzZDUwOTU2NDUyYjE4ZWYzYTkxYjNkOS4uYWI0MzUxZTk2MWE0Y2Y1Njk2NmUzNDRmYmI4MzYy
M2JhOTY3M2EzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTA5ICBSb2xhbmQgU3Rl
aW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHlsZSBzY29w
ZWQ+OiBBbGxvdyA8c3R5bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBjaGlsZCBvZiBhIFNoYWRvd1Jv
b3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODUz
CisKKyAgICAgICAgVGVzdCByZWdpc3RyYXRpb24gb2YgPHN0eWxlIHNjb3BlZD4gYXMgYSBkaXJl
Y3QgY2hpbGQgb2YgYSBTaGFkb3dSb290LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3JlZ2lzdGVyaW5nLXNo
YWRvd3Jvb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1z
Y29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0wOSAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gRW5hYmxlIG1vY2sgc2Nyb2xsYmFycyBmb3IgY29tcG9zaXRpbmcgbGF5b3V0IHRlc3RzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmct
c2hhZG93cm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29w
ZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQyZTk4
ZjcxMTc2MjQwMDVlZDMxMzQ5ZWUwNzdiM2NiMDk0NzNkNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdpc3RlcmluZy1zaGFkb3dyb290LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitUZXN0IGhhdmluZyBhIDxzdHlsZSBzY29wZWQ+
IGVsZW1lbnQgYXMgYSBkaXJlY3QgY2hpbGQgb2YgYSBTaGFkb3dSb290LgorCistLS0gSW5pdGlh
bCAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9z
dCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihz
cikgaXMgMAorLS0tIEF0dGFjaGluZyA8c3R5bGUgc2NvcGVkPiAtLS0KK1BBU1MgaW50ZXJuYWxz
Lm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5h
bHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikgaXMgMQorLS0tIFJlbW92aW5n
IGhvc3QgLS0tCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
KGhvc3QpIGlzIDAKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRy
ZW4oc3IpIGlzIDAKKy0tLSBJbnNlcnRpbmcgaG9zdCAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJl
ck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikgaXMgMQorLS0tIFVuc2V0dGluZyBAc2Nv
cGVkIC0tLQorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiho
b3N0KSBpcyAwCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
KHNyKSBpcyAwCistLS0gU2V0dGluZyBAc2NvcGVkIC0tLQorUEFTUyBpbnRlcm5hbHMubnVtYmVy
T2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSBpcyAwCitQQVNTIGludGVybmFscy5udW1i
ZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSBpcyAxCistLS0gRGV0YWNoaW5nIDxzdHls
ZSBzY29wZWQ+IC0tLQorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbihob3N0KSBpcyAwCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNo
aWxkcmVuKHNyKSBpcyAwCistLS0gQXR0YWNoaW5nIDxzdHlsZSBzY29wZWQ+IHVuZGVyIGhvc3Qg
LS0tCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3Qp
IGlzIDEKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3Ip
IGlzIDAKKy0tLSBET05FIC0tLQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNj
b3BlZC9yZWdpc3RlcmluZy1zaGFkb3dyb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9z
dHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNGM1
NDczNGNiMTZhMDRmZTZmN2NhZDExOTU5NjFlNWQ4MDY4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC5o
dG1sCkBAIC0wLDAgKzEsNzQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGVzdCBoYXZpbmcgYSAmbHQ7c3R5bGUgc2NvcGVk
Jmd0OyBlbGVtZW50IGFzIGEgZGlyZWN0IGNoaWxkIG9mIGEgU2hhZG93Um9vdC48L3A+CisgICAg
PGRpdiBpZD0iaG9zdCI+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVmIj4KKyAgICA8L2Rp
dj4KKworICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAg
ICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgZGVidWcoIndpbmRvd3MuaW50
ZXJuYWxzIG5vdCBmb3VuZCEiKTsKKyAgICAgICAgZWxzZSBpZiAoIXdpbmRvdy5pbnRlcm5hbHMu
ZW5zdXJlU2hhZG93Um9vdCkKKyAgICAgICAgICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5l
bnN1cmVTaGFkb3dSb290IG5vdCBmb3VuZCEiKTsKKyAgICAgICAgZWxzZSBpZiAoIXdpbmRvdy5p
bnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbikKKyAgICAgICAgICAgIGRl
YnVnKCJ3aW5kb3dzLmludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIG5v
dCBmb3VuZCEiKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YXIgcmVmID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZicpOworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOworICAgICAgICAgICAgdmFyIHNyID0gaW50ZXJuYWxz
LmVuc3VyZVNoYWRvd1Jvb3QoaG9zdCk7CisgICAgICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOworICAgICAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRl
KCdzY29wZWQnLCAnc2NvcGVkJyk7CisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gSW5pdGlhbCAt
LS0iKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1M
U3R5bGVDaGlsZHJlbihob3N0KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJu
YWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxl
PiBvdXQgb2YgZG9jdW1lbnQsIHNjb3BlZCAqLworCisgICAgICAgICAgICBkZWJ1ZygiLS0tIEF0
dGFjaGluZyAmbHQ7c3R5bGUgc2NvcGVkJmd0OyAtLS0iKTsKKyAgICAgICAgICAgIHNyLmFwcGVu
ZENoaWxkKHN0eWxlKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZT
Y29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRC
ZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjEiKTsg
LyogPHN0eWxlPiBpbiBzaGFkb3csIHNjb3BlZCAqLworCisgICAgICAgICAgICBkZWJ1ZygiLS0t
IFJlbW92aW5nIGhvc3QgLS0tIik7CisgICAgICAgICAgICBob3N0LnBhcmVudE5vZGUucmVtb3Zl
Q2hpbGQoaG9zdCk7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2Nv
cGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkiLCAiMCIpOworICAgICAgICAgICAgc2hvdWxkQmUo
ImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSIsICIwIik7IC8q
IDxzdHlsZT4gb3V0IG9mIGRvY3VtZW50LCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWco
Ii0tLSBJbnNlcnRpbmcgaG9zdCAtLS0iKTsKKyAgICAgICAgICAgIHJlZi5wYXJlbnROb2RlLmlu
c2VydEJlZm9yZShob3N0LCByZWYpOworICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5u
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzciki
LCAiMSIpOyAvKiA8c3R5bGU+IGluIHNoYWRvdywgc2NvcGVkICovCisKKyAgICAgICAgICAgIGRl
YnVnKCItLS0gVW5zZXR0aW5nIEBzY29wZWQgLS0tIik7CisgICAgICAgICAgICBzdHlsZS5zY29w
ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgi
aW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyog
PHN0eWxlPiBpbiBzaGFkb3csIG5vdCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0t
LSBTZXR0aW5nIEBzY29wZWQgLS0tIik7CisgICAgICAgICAgICBzdHlsZS5zY29wZWQgPSB0cnVl
OworICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHls
ZUNoaWxkcmVuKGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMu
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikiLCAiMSIpOyAvKiA8c3R5bGU+IGlu
IHNoYWRvdywgc2NvcGVkICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gRGV0YWNoaW5nICZs
dDtzdHlsZSBzY29wZWQmZ3Q7IC0tLSIpOworICAgICAgICAgICAgc3IucmVtb3ZlQ2hpbGQoc3R5
bGUpOworICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxT
dHlsZUNoaWxkcmVuKGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5h
bHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikiLCAiMCIpOyAvKiA8c3R5bGU+
IG91dCBvZiBkb2N1bWVudCwgc2NvcGVkICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gQXR0
YWNoaW5nICZsdDtzdHlsZSBzY29wZWQmZ3Q7IHVuZGVyIGhvc3QgLS0tIik7CisgICAgICAgICAg
ICBob3N0LmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5h
bHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSIsICIxIik7CisgICAgICAg
ICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4o
c3IpIiwgIjAiKTsgLyogPHN0eWxlPiBpbiB0cmVlLCBzY29wZWQgKi8KKworICAgICAgICAgICAg
ZGVidWcoIi0tLSBET05FIC0tLSIpOworICAgICAgICB9CisgICAgICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMmY3MDZmZGE1ZWM2NzNm
ZmM5MDZjMGZiODg0NWNlYmIwZGRkMGU5Li5iYzRlMTE2NTgzYzI2Y2I4YjZlZTQ1YWZlZTdjNDU2
OGM4NmNlMWViIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDItMDkgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgPHN0eWxlIHNjb3BlZD46IEFsbG93IDxzdHlsZSBzY29wZWQ+
IGFzIGEgZGlyZWN0IGNoaWxkIG9mIGEgU2hhZG93Um9vdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4NTMKKworICAgICAgICBudW1iZXJPZlNjb3Bl
ZEhUTUxTdHlsZUNoaWxkcmVuIGdvdCBtb3ZlZCBmcm9tIEVsZW1lbnQgaW50byBOb2RlLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMi0wMi0wOSAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBQZXJmLW8tbWF0aWMgc2hvdWxkbid0IHJlbHkgb24g
bWVtY2FjaGUgdG8gc3RvcmUgY2FjaGVkIEpTT04gcmVzcG9uc2VzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126456</attachid>
            <date>2012-02-09 22:24:37 -0800</date>
            <delta_ts>2012-02-10 09:22:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77853-20120210152435.patch</filename>
            <type>text/plain</type>
            <size>24484</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVjMGNmZmJlZGI3YzAz
YTM3YTY2Y2JkYmIxNGI3ZDExZGEyZjE4Ni4uOGZhYWUzZDlmNjgwZDdkYmRkYTEwYzNiMDBmNmQw
ZWY0M2EwMjgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTAyLTA5ICBSb2xh
bmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHls
ZSBzY29wZWQ+OiBBbGxvdyA8c3R5bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBjaGlsZCBvZiBhIFNo
YWRvd1Jvb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3ODUzCisKKyAgICAgICAgTW92ZWQgcmVnaXN0cmF0aW9uIGNvZGUgZnJvbSBFbGVtZW50IHRv
IE5vZGUuIHVwZGF0ZWQgSW50ZXJuYWxzIGFuZCBidWlsZCBmaWxlcyBhY2NvcmRpbmdseS4KKyAg
ICAgICAgTW92ZWQgcmVnaXN0cmF0aW9uIGRhdGEgbWVtYmVycyBmcm9tIEVsZW1lbnRSYXJlRGF0
YSB0byBOb2RlUmFyZURhdGEuCisgICAgICAgIEZvcndhcmQgd2lsbFJlbW92ZSgpIGZyb20gaG9z
dCBlbGVtZW50IGludG8gc2hhZG93IERPTSB0cmVlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdp
c3RlcmluZy1zaGFkb3dyb290Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OndpbGxS
ZW1vdmUpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KToKKyAg
ICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50UmFyZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpFbGVtZW50UmFyZURhdGEpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OnVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCk6CisgICAgICAgICogZG9tL05v
ZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6Tm9kZVJhcmVEYXRhKToKKyAgICAgICAgKE5v
ZGVSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnJlZ2lzdGVyU2Nv
cGVkSFRNTFN0eWxlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjp1bnJl
Z2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVE
YXRhOjpoYXNTY29wZWRIVE1MU3R5bGVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFy
ZURhdGE6Om51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4pOgorICAgICAgICAqIGh0bWwv
SFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50
OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVF
bGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW4pOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAg
ICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAx
Mi0wMi0wOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSB0aGUgc2Nyb2xsIGxheWVyIHBvc2l0aW9uIG9uIHRoZSBtYWluIHRocmVhZCB3aGVu
IHdlIGhhdmUgc2xvdyByZXBhaW50IG9iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5YmMzZmFhYjFkNDRm
ZjRlMDc2YjY4YmVkY2RkYWI0ZTY3ZDI3NzYyLi40Y2I1MjU4ZGE2NzUwM2NkOGQ3Zjg4ZTViZWUw
NjJhYWRjZDU5YTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMDkgIFJv
bGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPHN0
eWxlIHNjb3BlZD46IEFsbG93IDxzdHlsZSBzY29wZWQ+IGFzIGEgZGlyZWN0IGNoaWxkIG9mIGEg
U2hhZG93Um9vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc4NTMKKworICAgICAgICBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIGdvdCBt
b3ZlZCBmcm9tIEVsZW1lbnQgaW50byBOb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorICAgICAgICAqIHdpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMi0wMi0wOSAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFu
ZXlAYXBwbGUuY29tPgogCiAgICAgICAgIEhpRFBJOiBXZWJLaXQyJ3MgZHJhZyBpbWFnZXMgYXJl
IGJsdXJyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBkODM5YzUzZDljY2Y1ODkwZTIwMmM2NWYz
OGE2MDI1NTJmZDcyMGEyLi4xODRkN2NhZjJhZDMxNmQxZDg0YTJkZGIzMjFjYjQ0ZGNhYzhlNWQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjA3NCw2ICsyMDc0LDQgQEAgX19aTjdXZWJDb3Jl
NFBhZ2UyMHNjcm9sbGluZ0Nvb3JkaW5hdG9yRXYKIF9fWk5LN1dlYkNvcmUyMFNjcm9sbGluZ0Nv
b3JkaW5hdG9yMTNzY3JvbGxpbmdUcmVlRXYKICNlbmRpZgogCi0jaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbkV2Ci0jZW5kaWYKK19fWk5LN1dlYkNvcmU0Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5
bGVDaGlsZHJlbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMzU1ZjM4YWRiZTRkMmRmYTNj
Y2NjMjA0OWE0ZWI2MWZmODY2ZjRiZS4uNTUzZDY1NmRlY2NhY2E5ZDExNmVmMzlhN2QzNmJmYTRk
YzAyMjE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODYyLDYgKzg2Miw4IEBAIHZvaWQg
RWxlbWVudDo6d2lsbFJlbW92ZSgpCiAgICAgaWYgKGNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQo
KSkKICAgICAgICAgc2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3Np
bmdGcmFtZUJvdW5kYXJpZXMoZmFsc2UpOwogI2VuZGlmCisgICAgaWYgKFNoYWRvd1Jvb3QqIHNo
YWRvdyA9IHNoYWRvd1Jvb3QoKSkKKyAgICAgICAgc2hhZG93LT53aWxsUmVtb3ZlKCk7CiAgICAg
Q29udGFpbmVyTm9kZTo6d2lsbFJlbW92ZSgpOwogfQogCkBAIC0xNzUxLDMwICsxNzUzLDYgQEAg
dW5zaWduZWQgRWxlbWVudDo6Y2hpbGRFbGVtZW50Q291bnQoKSBjb25zdAogICAgIHJldHVybiBj
b3VudDsKIH0KIAotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi1ib29sIEVsZW1lbnQ6Omhhc1Nj
b3BlZEhUTUxTdHlsZUNoaWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAm
JiByYXJlRGF0YSgpLT5oYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotfQotCi1zaXplX3QgRWxl
bWVudDo6bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNo
aWxkcmVuKCkgOiAwOwotfQotCi12b2lkIEVsZW1lbnQ6OnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxl
Q2hpbGQoKQotewotICAgIGVuc3VyZVJhcmVEYXRhKCktPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxl
Q2hpbGQoKTsKLX0KLQotdm9pZCBFbGVtZW50Ojp1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hp
bGQoKQotewotICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKLSAgICBpZiAoaGFzUmFyZURhdGEo
KSkKLSAgICAgICAgcmFyZURhdGEoKS0+dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7
Ci19Ci0jZW5kaWYKLQogYm9vbCBFbGVtZW50Ojp3ZWJraXRNYXRjaGVzU2VsZWN0b3IoY29uc3Qg
U3RyaW5nJiBzZWxlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKHNlbGVjdG9y
LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggOTM4MWUyZjU4MTU4N2Q3MzI1NzBh
ODMxNDk0MjgzNDg0MTk3ZjgyOS4uY2EyNGUzZjk1NDcwYzRmMWI4NTI2MzIxZDRiNzVlMmFiMjk3
NTgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMjMsMTMgKzMyMyw2IEBAIHB1YmxpYzoKICAg
ICBFbGVtZW50KiBuZXh0RWxlbWVudFNpYmxpbmcoKSBjb25zdDsKICAgICB1bnNpZ25lZCBjaGls
ZEVsZW1lbnRDb3VudCgpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICB2
b2lkIHJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJT
Y29wZWRIVE1MU3R5bGVDaGlsZCgpOwotICAgIGJvb2wgaGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQo
KSBjb25zdDsKLSAgICBzaXplX3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNv
bnN0OwotI2VuZGlmCi0KICAgICBib29sIHdlYmtpdE1hdGNoZXNTZWxlY3Rvcihjb25zdCBTdHJp
bmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgRE9NVG9rZW5MaXN0KiBjbGFz
c0xpc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBjYTMyMTE1ZTYx
ODQ2NDg3YzE5MWQ5ZmFhMjg0NzA2ZjJlZTAyYWY4Li5kNzA4M2Q5MzM5ZTIyYzQwZmE1ODk3ZmVh
MmI2ZmY1NzFhZGVmZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJh
cmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC00
MCwxMyArNDAsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0Q29tcHV0ZWRTdHlsZSgpOwog
Ci0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICB2b2lkIHJlZ2lzdGVyU2NvcGVkSFRNTFN0
eWxlQ2hpbGQoKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwot
ICAgIGJvb2wgaGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdDsKLSAgICBzaXplX3QgbnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0OwotI2VuZGlmCi0KICAgICB1c2lu
ZyBOb2RlUmFyZURhdGE6Om5lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNo
OwogICAgIHVzaW5nIE5vZGVSYXJlRGF0YTo6c2V0TmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVT
b29uQWZ0ZXJBdHRhY2g7CiAKQEAgLTc1LDEwICs2OCw2IEBAIHB1YmxpYzoKICAgICBTaGFkb3dS
b290KiBtX3NoYWRvd1Jvb3Q7CiAgICAgQXRvbWljU3RyaW5nIG1fc2hhZG93UHNldWRvSWQ7CiAK
LSNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQotICAgIHNpemVfdCBtX251bWJlck9mU2NvcGVkSFRN
TFN0eWxlQ2hpbGRyZW47Ci0jZW5kaWYKLQogICAgIE93blB0cjxEYXRhc2V0RE9NU3RyaW5nTWFw
PiBtX2RhdGFzZXRET01TdHJpbmdNYXA7CiAgICAgT3duUHRyPENsYXNzTGlzdD4gbV9jbGFzc0xp
c3Q7CiAKQEAgLTk1LDExICs4NCw5IEBAIGlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6
ZUZvclJlc2l6aW5nKCkKIH0KIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVE
YXRhKCkKLSAgICA6IG1fbWluaW11bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVG
b3JSZXNpemluZygpKQorICAgIDogTm9kZVJhcmVEYXRhKCkKKyAgICAsIG1fbWluaW11bVNpemVG
b3JSZXNpemluZyhkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpKQogICAgICwgbV9zaGFk
b3dSb290KDApCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICAsIG1fbnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbigwKQotI2VuZGlmCiAgICAgLCBtX3N0eWxlQWZmZWN0ZWRCeUVt
cHR5KGZhbHNlKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAsIG1fY29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudChmYWxzZSkKQEAgLTExNywyOSArMTA0LDUgQEAgaW5saW5lIHZvaWQg
RWxlbWVudFJhcmVEYXRhOjpyZXNldENvbXB1dGVkU3R5bGUoKQogICAgIG1fY29tcHV0ZWRTdHls
ZS5jbGVhcigpOwogfQogCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLWlubGluZSB2b2lkIEVs
ZW1lbnRSYXJlRGF0YTo6cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCi17Ci0gICAgKytt
X251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47Ci19Ci0KLWlubGluZSB2b2lkIEVsZW1l
bnRSYXJlRGF0YTo6dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkKLXsKLSAgICBBU1NF
UlQobV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuID4gMCk7Ci0gICAgaWYgKG1fbnVt
YmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiA+IDApCi0gICAgICAgIC0tbV9udW1iZXJPZlNj
b3BlZEhUTUxTdHlsZUNoaWxkcmVuOwotfQotCi1pbmxpbmUgYm9vbCBFbGVtZW50UmFyZURhdGE6
Omhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9udW1iZXJP
ZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOwotfQotCi1pbmxpbmUgc2l6ZV90IEVsZW1lbnRSYXJl
RGF0YTo6bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbjsKLX0KLSNlbmRpZgotCiB9CiAj
ZW5kaWYgLy8gRWxlbWVudFJhcmVEYXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAzOWI4ZmE4OTVj
ZGY3YjIxNDM4OTNiOWRkNWY1Mjc5ZDM2ZTZkZDA0Li4yMWExYmE0NjkwNDIxZWU3NzU0ZjU0NzVh
ODc4YjJiOGMyYTM2MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNzIxLDYgKzI3MjEsMzkgQEAg
dm9pZCBOb2RlOjpub3RpZnlNdXRhdGlvbk9ic2VydmVyc05vZGVXaWxsRGV0YWNoKCkKIH0KICNl
bmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogCisjaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKK2Jvb2wgTm9kZTo6aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdAoreworICAg
IHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPmhhc1Njb3BlZEhUTUxTdHlsZUNo
aWxkKCk7Cit9CisKK3NpemVfdCBOb2RlOjpudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCktPm51bWJl
ck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oKSA6IDA7Cit9CisKK3ZvaWQgTm9kZTo6cmVnaXN0
ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCit7CisgICAgZW5zdXJlUmFyZURhdGEoKS0+cmVnaXN0
ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOworfQorCit2b2lkIE5vZGU6OnVucmVnaXN0ZXJTY29w
ZWRIVE1MU3R5bGVDaGlsZCgpCit7CisgICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkpOworICAgIGlm
IChoYXNSYXJlRGF0YSgpKQorICAgICAgICByYXJlRGF0YSgpLT51bnJlZ2lzdGVyU2NvcGVkSFRN
TFN0eWxlQ2hpbGQoKTsKK30KKyNlbHNlCitib29sIE5vZGU6Omhhc1Njb3BlZEhUTUxTdHlsZUNo
aWxkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworc2l6ZV90IE5vZGU6Om51bWJlck9m
U2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorI2Vu
ZGlmCiAKIHZvaWQgTm9kZTo6aGFuZGxlTG9jYWxFdmVudHMoRXZlbnQqIGV2ZW50KQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKaW5kZXggMzExYmQ0MTE3Y2ZmOWU3NDBhZjYwYmZmY2I3OTZiZjAwYzM4OTA2MC4uZjNl
ZWI4ZjQ1YjZmYTcwZDA5YTg2NTQ4Mjk3YzM1MGVlNzRlMzcxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC02
MzIsNiArNjMyLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJz
Tm9kZVdpbGxEZXRhY2goKTsKICNlbmRpZiAvLyBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQog
CisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICB2b2lkIHJlZ2lzdGVyU2NvcGVkSFRNTFN0
eWxlQ2hpbGQoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwor
I2VuZGlmCisgICAgYm9vbCBoYXNTY29wZWRIVE1MU3R5bGVDaGlsZCgpIGNvbnN0OworICAgIHNp
emVfdCBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgZW51bSBOb2RlRmxhZ3MgewogICAgICAgICBJc1RleHRGbGFnID0gMSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaAppbmRleCA3N2I5MjBkMWI1M2E1ZTFjMWJlZjI2MzRkMDMxYTJlYjE0
ZmFjYzc4Li4wODY0YjI2MjZjYzNhNTNlZjNmZGIwMWUxNDU0M2I1NmY4YzA5M2MwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0xMDAsNiArMTAwLDkgQEAgcHVibGljOgogICAgICAg
ICAsIG1fdGFiSW5kZXhXYXNTZXRFeHBsaWNpdGx5KGZhbHNlKQogICAgICAgICAsIG1faXNGb2N1
c2VkKGZhbHNlKQogICAgICAgICAsIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0
ZXJBdHRhY2goZmFsc2UpCisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICAgICAgLCBtX251
bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oMCkKKyNlbmRpZgogICAgIHsKICAgICB9CiAK
QEAgLTIyNiw2ICsyMjksMzAgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KFNUWUxFX1NDT1BFRCkKKyAgICB2b2lkIHJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQor
ICAgIHsKKyAgICAgICAgKyttX251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW47CisgICAg
fQorCisgICAgdm9pZCB1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbiA+IDApOworICAg
ICAgICBpZiAobV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuID4gMCkKKyAgICAgICAg
ICAgIC0tbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOworICAgIH0KKworICAgIGJv
b2wgaGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbjsKKyAgICB9CisKKyAgICBzaXplX3Qg
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbigpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuOworICAgIH0KKyNlbmRpZgor
CiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQogICAg
IHZvaWQgc2V0Rm9jdXNlZChib29sIGZvY3VzZWQpIHsgbV9pc0ZvY3VzZWQgPSBmb2N1c2VkOyB9
CiAKQEAgLTI1Nyw2ICsyODQsMTAgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxET01T
ZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtVHlwZTsKICAgICBtdXRhYmxlIE93blB0cjxIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24+IG1fcHJvcGVydGllczsKICNlbmRpZgorCisjaWYgRU5BQkxFKFNU
WUxFX1NDT1BFRCkKKyAgICBzaXplX3QgbV9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA0MTU2Y2U1ZjFlYjNhYWI5ZGQwY2UzZGUzODYz
MDRiZjlkMmI4NzNiLi4wYzA2NDQ1N2I0MWE5ZDgyNmQ4NWVjODU0Yzc2NTU4NGU2ZDU5NzVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTg4LDkgKzg4LDE1
IEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUoKQogICAg
IEFTU0VSVCghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpOwogICAgIEFTU0VSVChpbkRv
Y3VtZW50KCkpOwogICAgIGlmICghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpIHsKLSAg
ICAgICAgRWxlbWVudCogc2NvcGUgPSBwYXJlbnRFbGVtZW50KCk7CisgICAgICAgIENvbnRhaW5l
ck5vZGUqIHNjb3BlID0gcGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAoIXNjb3BlKQogICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBpZiAoIXNjb3BlLT5pc0VsZW1lbnROb2RlKCkgJiYgIXNj
b3BlLT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgLy8gRG9jdW1lbnRGcmFnbWVudCBu
b2RlcyBzaG91bGQgbmV2ZXIgYmUgaW5Eb2N1bWVudCwKKyAgICAgICAgICAgIC8vIDxzdHlsZT4g
c2hvdWxkIG5vdCBiZSBhIGNoaWxkIG9mIERvY3VtZW50LCBQSSBvciBzb21lIHN1Y2guCisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQogCiAgICAgICAgIHNjb3BlLT5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7CiAg
ICAgICAgIHNjb3BlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CkBAIC0xMDcsNyArMTEzLDcgQEAg
dm9pZCBIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKCkKICAgICAv
LyBUaGVyZWZvcmUgd2UgY2Fubm90IHJlbHkgb24gc2NvcGVkKCkhCiAgICAgQVNTRVJUKG1faXNS
ZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlKTsKICAgICBpZiAobV9pc1JlZ2lzdGVyZWRXaXRoU2Nv
cGluZ05vZGUpIHsKLSAgICAgICAgRWxlbWVudCogc2NvcGUgPSBwYXJlbnRFbGVtZW50KCk7Cisg
ICAgICAgIENvbnRhaW5lck5vZGUqIHNjb3BlID0gcGFyZW50Tm9kZSgpOwogICAgICAgICBBU1NF
UlQoc2NvcGUpOwogICAgICAgICBpZiAoc2NvcGUpIHsKICAgICAgICAgICAgIEFTU0VSVChzY29w
ZS0+aGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggMDZlMzRjZDNjYmJjMGRlMTc4YjEyMTdmYTQwMzg5OWI3MjA5N2JmNi4uYjdk
NWEzNGExMDM3ZTVjZjJmZWQxMGExN2I2M2Y3MzAxM2I5NTIzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMTczLDExICsxNzMsMTEgQEAgU3RyaW5nIEludGVybmFsczo6
ZWxlbWVudFJlbmRlclRyZWVBc1RleHQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgcmV0dXJuIHJlcHJlc2VudGF0aW9uOwogfQogCi1zaXplX3QgSW50ZXJuYWxzOjpu
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAorc2l6ZV90IEludGVybmFsczo6bnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbihjb25zdCBOb2RlKiBzY29wZSwgRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0CiB7Ci0gICAgaWYgKGVsZW1lbnQpCisgICAgaWYgKHNjb3BlICYmIChzY29wZS0+aXNFbGVt
ZW50Tm9kZSgpIHx8IHNjb3BlLT5pc1NoYWRvd1Jvb3QoKSkpCiAjaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKLSAgICAgICAgcmV0dXJuIGVsZW1lbnQtPm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hp
bGRyZW4oKTsKKyAgICAgICAgcmV0dXJuIHNjb3BlLT5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNo
aWxkcmVuKCk7CiAjZWxzZQogICAgICAgICByZXR1cm4gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggNDM5ZGM3NWM2ZTE1ZmJjYWU4MmM2N2NhZmU3OWYwYjIxYWZk
YmUwZS4uNmVkNzlkYmZkNWEzMzA1OTY3YTgyOWRhMzA5ZTZmNGU2YTIzZTQxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaXNQcmVsb2FkZWQoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAKLSAgICBzaXpl
X3QgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihjb25zdCBFbGVtZW50KiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OworICAgIHNpemVfdCBudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxk
cmVuKGNvbnN0IE5vZGUqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICNpZiBFTkFCTEUoU0hB
RE9XX0RPTSkKICAgICB0eXBlZGVmIFNoYWRvd1Jvb3QgU2hhZG93Um9vdElmU2hhZG93RE9NRW5h
YmxlZE9yTm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5YmYwNTc1
MWQ5YjZhMmY0YTgxZjA3MDk5YzkzYzdhNmQzYThhMDUzLi43ZjBjNDc0Nzc3NTEzODBlY2Q3NzEw
MTZiNGM2MGI2ZjEyYzQxZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBA
IC0zMCw3ICszMCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBET01TdHJpbmcgZWxlbWVu
dFJlbmRlclRyZWVBc1RleHQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgYm9vbGVhbiBpc1ByZWxvYWRlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4g
RE9NU3RyaW5nIHVybCk7CiAKLSAgICAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZlNjb3BlZEhU
TUxTdHlsZUNoaWxkcmVuKGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihp
biBOb2RlIHNjb3BlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogI2lmIGRlZmluZWQoRU5BQkxF
X1NIQURPV19ET00pCiAgICAgICAgIFNoYWRvd1Jvb3QgZW5zdXJlU2hhZG93Um9vdChpbiBFbGVt
ZW50IGhvc3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRl
eCA3NjgzMGUwMWM5ZGM0MzYxNTVmMjJjZGNmYjViNjM4NTgwYTlhZjM4Li4xNjRmN2ViOTNkY2E2
ZWMzNzBjNDFmZjJkZDhlYmM0YmFlOWRkZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0x
NjksNyArMTY5LDcgQEAgRVhQT1JUUwogICAgICAgICA/bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFP0FWPyRWZWN0b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2Vi
Q29yZUBAJDBBQEBXVEZAQFBBVk5vZGVAMkBWTWFya2VyVHlwZXNARG9jdW1lbnRNYXJrZXJAMkBA
WgogICAgICAgICA/b2JzZXJ2ZUZyYW1lQEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3Jl
QEBJQUVYUEFWRnJhbWVAMkBAWgogICAgICAgICA/b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzQFdlYkNvcmVAQFlBWEFCVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdURkBAQFoKLSAg
ICAgICAgOyA/bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkBFbGVtZW50QFdlYkNvcmVA
QFFCRUlYWgorICAgICAgICA/bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkBOb2RlQFdl
YkNvcmVAQFFCRUlYWgogICAgICAgICA/cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdl
QDJAWFoKICAgICAgICAgP3BhaW50Q29udHJvbFRpbnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVY
WFoKICAgICAgICAgP3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJD
b3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAy
QEhIX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDNhOTI3YzI3Y2Vl
NjlmY2FjMmE0NjY4NmQ4NzE0MGQyMTNjMzIzMDUuLmY4ZmI3N2VlYWJlY2JkNWU5MGU3NmQ0YWVi
OTY2M2ExOGNmOWIyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE2
Myw3ICsxNjMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9tYXJrZXJzRm9yQERvY3VtZW50TWFya2Vy
Q29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZlY3RvckBQQVZEb2N1bWVudE1hcmtlckBXZWJD
b3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQFZNYXJrZXJUeXBlc0BEb2N1bWVudE1hcmtlckAyQEBa
CiAgICAgICAgID9vYnNlcnZlRnJhbWVARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVA
QElBRVhQQVZGcmFtZUAyQEBaCiAgICAgICAgID9vdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNAV2ViQ29yZUBAWUFYQUJWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBAWgotICAg
ICAgICA7ID9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuQEVsZW1lbnRAV2ViQ29yZUBA
UUJFSVhaCisgICAgICAgID9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuQE5vZGVAV2Vi
Q29yZUBAUUJFSVhaCiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlBhZ2VA
MkBYWgogICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhY
WgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9yQFdlYkNv
cmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJA
SEhfTkBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA1ZTllYjM0Y2U1NDcyMTE4MjE2Mzg0
OTg0ZGYwNGRhYzNkMTVmMDhlLi5jZTM3ZTI3NTExOWM0NjQ3ZGU4YWQ1NzVlMmU5NmQ2NDdmYmRl
YjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTcxLDYgKzcxLDcgQEAgX1pON1dlYkNv
cmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlOUpTRWxlbWVudDEwcHV0Vmly
dHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5T
MV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRTsKIF9a
TjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRTsKK19aTks3V2ViQ29yZTROb2RlMzFu
dW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuRXY7CiBfWk5LN1dlYkNvcmUxMlJlbmRlck9i
amVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RFYjsKIF9aTks3V2ViQ29yZTE2SFRNTElucHV0
RWxlbWVudDE0c3VnZ2VzdGVkVmFsdWVFdjsKIF9aTks3V2ViQ29yZTE3SlNET01HbG9iYWxPYmpl
Y3QyMnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFdjsKQEAgLTc5LDcgKzgwLDYgQEAgX1pOSzdXZWJD
b3JlMjZIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1VzZXJFZGl0RXY7
CiBfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05vZGUyMXB1
c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNoYWluTm9k
ZUU7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2OwotX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdjsKIF9aTks3V2ViQ29yZThE
b2N1bWVudDRwYWdlRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NFdjsKIF9aTks3
V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzA4NDcxMzEzZWFmMzRjYTAzZDUwOTU2
NDUyYjE4ZWYzYTkxYjNkOS4uYWI0MzUxZTk2MWE0Y2Y1Njk2NmUzNDRmYmI4MzYyM2JhOTY3M2Ez
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTA5ICBSb2xhbmQgU3RlaW5lciAgPHJv
bGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxzdHlsZSBzY29wZWQ+OiBBbGxv
dyA8c3R5bGUgc2NvcGVkPiBhcyBhIGRpcmVjdCBjaGlsZCBvZiBhIFNoYWRvd1Jvb3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODUzCisKKyAgICAg
ICAgVGVzdCByZWdpc3RyYXRpb24gb2YgPHN0eWxlIHNjb3BlZD4gYXMgYSBkaXJlY3QgY2hpbGQg
b2YgYSBTaGFkb3dSb290LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3JlZ2lzdGVyaW5nLXNoYWRvd3Jvb3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVn
aXN0ZXJpbmctc2hhZG93cm9vdC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0wOSAgSmFtZXMgUm9i
aW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRW5hYmxl
IG1vY2sgc2Nyb2xsYmFycyBmb3IgY29tcG9zaXRpbmcgbGF5b3V0IHRlc3RzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9v
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0
ZXJpbmctc2hhZG93cm9vdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQyZTk4ZjcxMTc2MjQw
MDVlZDMxMzQ5ZWUwNzdiM2NiMDk0NzNkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdpc3RlcmluZy1zaGFkb3dyb290LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMxIEBACitUZXN0IGhhdmluZyBhIDxzdHlsZSBzY29wZWQ+IGVsZW1lbnQg
YXMgYSBkaXJlY3QgY2hpbGQgb2YgYSBTaGFkb3dSb290LgorCistLS0gSW5pdGlhbCAtLS0KK1BB
U1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkgaXMgMAor
UEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikgaXMgMAor
LS0tIEF0dGFjaGluZyA8c3R5bGUgc2NvcGVkPiAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJlck9m
U2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVtYmVy
T2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikgaXMgMQorLS0tIFJlbW92aW5nIGhvc3QgLS0t
CitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIGlz
IDAKK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIGlz
IDAKKy0tLSBJbnNlcnRpbmcgaG9zdCAtLS0KK1BBU1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVk
SFRNTFN0eWxlQ2hpbGRyZW4oaG9zdCkgaXMgMAorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbihzcikgaXMgMQorLS0tIFVuc2V0dGluZyBAc2NvcGVkIC0tLQor
UEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSBpcyAw
CitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSBpcyAw
CistLS0gU2V0dGluZyBAc2NvcGVkIC0tLQorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbihob3N0KSBpcyAwCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3Bl
ZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSBpcyAxCistLS0gRGV0YWNoaW5nIDxzdHlsZSBzY29wZWQ+
IC0tLQorUEFTUyBpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0
KSBpcyAwCitQQVNTIGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNy
KSBpcyAwCistLS0gQXR0YWNoaW5nIDxzdHlsZSBzY29wZWQ+IHVuZGVyIGhvc3QgLS0tCitQQVNT
IGludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIGlzIDEKK1BB
U1MgaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIGlzIDAKKy0t
LSBET05FIC0tLQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9yZWdp
c3RlcmluZy1zaGFkb3dyb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29w
ZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNGM1NDczNGNiMTZh
MDRmZTZmN2NhZDExOTU5NjFlNWQ4MDY4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvcmVnaXN0ZXJpbmctc2hhZG93cm9vdC5odG1sCkBAIC0w
LDAgKzEsNzQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisgICAgPHA+VGVzdCBoYXZpbmcgYSAmbHQ7c3R5bGUgc2NvcGVkJmd0OyBlbGVt
ZW50IGFzIGEgZGlyZWN0IGNoaWxkIG9mIGEgU2hhZG93Um9vdC48L3A+CisgICAgPGRpdiBpZD0i
aG9zdCI+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0icmVmIj4KKyAgICA8L2Rpdj4KKworICAg
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKCF3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgZGVidWcoIndpbmRvd3MuaW50ZXJuYWxzIG5v
dCBmb3VuZCEiKTsKKyAgICAgICAgZWxzZSBpZiAoIXdpbmRvdy5pbnRlcm5hbHMuZW5zdXJlU2hh
ZG93Um9vdCkKKyAgICAgICAgICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5lbnN1cmVTaGFk
b3dSb290IG5vdCBmb3VuZCEiKTsKKyAgICAgICAgZWxzZSBpZiAoIXdpbmRvdy5pbnRlcm5hbHMu
bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbikKKyAgICAgICAgICAgIGRlYnVnKCJ3aW5k
b3dzLmludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuIG5vdCBmb3VuZCEi
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YXIgcmVmID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3JlZicpOworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaG9zdCcpOworICAgICAgICAgICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNo
YWRvd1Jvb3QoaG9zdCk7CisgICAgICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzdHlsZScpOworICAgICAgICAgICAgc3R5bGUuc2V0QXR0cmlidXRlKCdzY29wZWQn
LCAnc2NvcGVkJyk7CisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gSW5pdGlhbCAtLS0iKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGls
ZHJlbihob3N0KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJl
ck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBvdXQgb2Yg
ZG9jdW1lbnQsIHNjb3BlZCAqLworCisgICAgICAgICAgICBkZWJ1ZygiLS0tIEF0dGFjaGluZyAm
bHQ7c3R5bGUgc2NvcGVkJmd0OyAtLS0iKTsKKyAgICAgICAgICAgIHNyLmFwcGVuZENoaWxkKHN0
eWxlKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1M
U3R5bGVDaGlsZHJlbihob3N0KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJu
YWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjEiKTsgLyogPHN0eWxl
PiBpbiBzaGFkb3csIHNjb3BlZCAqLworCisgICAgICAgICAgICBkZWJ1ZygiLS0tIFJlbW92aW5n
IGhvc3QgLS0tIik7CisgICAgICAgICAgICBob3N0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaG9z
dCk7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0
eWxlQ2hpbGRyZW4oaG9zdCkiLCAiMCIpOworICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFs
cy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKHNyKSIsICIwIik7IC8qIDxzdHlsZT4g
b3V0IG9mIGRvY3VtZW50LCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBJbnNl
cnRpbmcgaG9zdCAtLS0iKTsKKyAgICAgICAgICAgIHJlZi5wYXJlbnROb2RlLmluc2VydEJlZm9y
ZShob3N0LCByZWYpOworICAgICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNj
b3BlZEhUTUxTdHlsZUNoaWxkcmVuKGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAgIHNob3VsZEJl
KCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikiLCAiMSIpOyAv
KiA8c3R5bGU+IGluIHNoYWRvdywgc2NvcGVkICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0g
VW5zZXR0aW5nIEBzY29wZWQgLS0tIik7CisgICAgICAgICAgICBzdHlsZS5zY29wZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZTY29wZWRIVE1MU3R5
bGVDaGlsZHJlbihob3N0KSIsICIwIik7CisgICAgICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxz
Lm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAiKTsgLyogPHN0eWxlPiBp
biBzaGFkb3csIG5vdCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0tLSBTZXR0aW5n
IEBzY29wZWQgLS0tIik7CisgICAgICAgICAgICBzdHlsZS5zY29wZWQgPSB0cnVlOworICAgICAg
ICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVu
KGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVyT2ZT
Y29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikiLCAiMSIpOyAvKiA8c3R5bGU+IGluIHNoYWRvdywg
c2NvcGVkICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gRGV0YWNoaW5nICZsdDtzdHlsZSBz
Y29wZWQmZ3Q7IC0tLSIpOworICAgICAgICAgICAgc3IucmVtb3ZlQ2hpbGQoc3R5bGUpOworICAg
ICAgICAgICAgc2hvdWxkQmUoImludGVybmFscy5udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxk
cmVuKGhvc3QpIiwgIjAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVy
T2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihzcikiLCAiMCIpOyAvKiA8c3R5bGU+IG91dCBvZiBk
b2N1bWVudCwgc2NvcGVkICovCisKKyAgICAgICAgICAgIGRlYnVnKCItLS0gQXR0YWNoaW5nICZs
dDtzdHlsZSBzY29wZWQmZ3Q7IHVuZGVyIGhvc3QgLS0tIik7CisgICAgICAgICAgICBob3N0LmFw
cGVuZENoaWxkKHN0eWxlKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMubnVtYmVy
T2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbihob3N0KSIsICIxIik7CisgICAgICAgICAgICBzaG91
bGRCZSgiaW50ZXJuYWxzLm51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW4oc3IpIiwgIjAi
KTsgLyogPHN0eWxlPiBpbiB0cmVlLCBzY29wZWQgKi8KKworICAgICAgICAgICAgZGVidWcoIi0t
LSBET05FIC0tLSIpOworICAgICAgICB9CisgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMmY3MDZmZGE1ZWM2NzNmZmM5MDZjMGZi
ODg0NWNlYmIwZGRkMGU5Li5iYzRlMTE2NTgzYzI2Y2I4YjZlZTQ1YWZlZTdjNDU2OGM4NmNlMWVi
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDItMDkgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgPHN0eWxlIHNjb3BlZD46IEFsbG93IDxzdHlsZSBzY29wZWQ+IGFzIGEgZGly
ZWN0IGNoaWxkIG9mIGEgU2hhZG93Um9vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4NTMKKworICAgICAgICBudW1iZXJPZlNjb3BlZEhUTUxTdHls
ZUNoaWxkcmVuIGdvdCBtb3ZlZCBmcm9tIEVsZW1lbnQgaW50byBOb2RlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlcjoKKwogMjAxMi0wMi0wOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBQZXJmLW8tbWF0aWMgc2hvdWxkbid0IHJlbHkgb24gbWVtY2FjaGUg
dG8gc3RvcmUgY2FjaGVkIEpTT04gcmVzcG9uc2VzCg==
</data>
<flag name="review"
          id="128273"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="128274"
          type_id="3"
          status="-"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>