<?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>218225</bug_id>
          
          <creation_ts>2020-10-27 01:41:43 -0700</creation_ts>
          <short_desc>IntersectionObserverCallback leaks</short_desc>
          <delta_ts>2020-10-29 01:16:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=215158</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>ajuma</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1701795</commentid>
    <comment_count>0</comment_count>
      <attachid>412400</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-27 01:41:43 -0700</bug_when>
    <thetext>Created attachment 412400
layout test: intersection-observer-callback-leak.html

Like ResizeObserverCallback, the js objects inside IntersectionObserverCallback can not be garbage collected until the page is unloaded.

I tried to create a test of the IntersectionObserverCallback version, while it doesn&apos;t show any warnings.
`numberOfIntersectionObservers()` is right, because `IntersectionObserver::disconnect` removes observers from document.
But we can see in &quot;Web Inspector -&gt; Timelines -&gt; Javascript Allocations&quot;, jsIntersectionObserver is not collected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701796</commentid>
    <comment_count>1</comment_count>
      <attachid>412401</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-27 01:44:36 -0700</bug_when>
    <thetext>Created attachment 412401
check-observer-number-in-timeline.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701808</commentid>
    <comment_count>2</comment_count>
      <attachid>412406</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-27 03:22:34 -0700</bug_when>
    <thetext>Created attachment 412406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701810</commentid>
    <comment_count>3</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-27 03:24:14 -0700</bug_when>
    <thetext>(In reply to cathiechen from comment #0)
&gt; Created attachment 412400 [details]
&gt; layout test: intersection-observer-callback-leak.html
&gt; 
&gt; Like ResizeObserverCallback, the js objects inside
&gt; IntersectionObserverCallback can not be garbage collected until the page is
&gt; unloaded.
&gt; 
&gt; I tried to create a test of the IntersectionObserverCallback version, while
&gt; it doesn&apos;t show any warnings.
&gt; `numberOfIntersectionObservers()` is right, because
&gt; `IntersectionObserver::disconnect` removes observers from document.
&gt; But we can see in &quot;Web Inspector -&gt; Timelines -&gt; Javascript Allocations&quot;,
&gt; jsIntersectionObserver is not collected.

Ah, we can check the number of &lt;div&gt;s instead...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701811</commentid>
    <comment_count>4</comment_count>
      <attachid>412407</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-27 03:25:05 -0700</bug_when>
    <thetext>Created attachment 412407
check-observer-number-in-timeline.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701816</commentid>
    <comment_count>5</comment_count>
      <attachid>412408</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-27 03:42:03 -0700</bug_when>
    <thetext>Created attachment 412408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702110</commentid>
    <comment_count>6</comment_count>
      <attachid>412408</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-27 14:49:04 -0700</bug_when>
    <thetext>Comment on attachment 412408
Patch

Typically for any case like this, we would want both a test that expando properties survive as well as a test that GC reclaims memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702115</commentid>
    <comment_count>7</comment_count>
      <attachid>412408</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-27 14:51:16 -0700</bug_when>
    <thetext>Comment on attachment 412408
Patch

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

&gt; Source/WebCore/page/IntersectionObserverCallback.h:44
&gt; +    virtual bool hasCallback() const { return false; }

What’s the point in adding a virtual function that is never overridden by a derived class? I would have expected &quot;static bool hasCallback ...&quot; if the bindings generator requires this function, but it always returns false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702225</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-27 20:56:12 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 412408 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412408&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/IntersectionObserverCallback.h:44
&gt; &gt; +    virtual bool hasCallback() const { return false; }
&gt; 
&gt; What’s the point in adding a virtual function that is never overridden by a
&gt; derived class? I would have expected &quot;static bool hasCallback ...&quot; if the
&gt; bindings generator requires this function, but it always returns false.

JSIntersectionObserverCallback overrides it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702228</commentid>
    <comment_count>9</comment_count>
      <attachid>412408</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-27 21:43:46 -0700</bug_when>
    <thetext>Comment on attachment 412408
Patch

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

&gt;&gt;&gt; Source/WebCore/page/IntersectionObserverCallback.h:44
&gt;&gt;&gt; +    virtual bool hasCallback() const { return false; }
&gt;&gt; 
&gt;&gt; What’s the point in adding a virtual function that is never overridden by a derived class? I would have expected &quot;static bool hasCallback ...&quot; if the bindings generator requires this function, but it always returns false.
&gt; 
&gt; JSIntersectionObserverCallback overrides it.

Yes, and besides JSIntersectionObserverCallback, there are other derived classes, like LazyFrameLoadIntersectionObserverCallback and LazyImageLoadIntersectionObserverCallback. So I make it returns false here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702255</commentid>
    <comment_count>10</comment_count>
      <attachid>412514</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-28 02:49:41 -0700</bug_when>
    <thetext>Created attachment 412514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702257</commentid>
    <comment_count>11</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-28 02:52:46 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 412408 [details]
&gt; Patch
&gt; 
&gt; Typically for any case like this, we would want both a test that expando
&gt; properties survive as well as a test that GC reclaims memory.

OK, added a test to ensure that callbacks are alive even if the observed targets are removed if observers are alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702643</commentid>
    <comment_count>12</comment_count>
      <attachid>412622</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-10-29 00:44:12 -0700</bug_when>
    <thetext>Created attachment 412622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702647</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-29 01:15:23 -0700</bug_when>
    <thetext>Committed r269141: &lt;https://trac.webkit.org/changeset/269141&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412622.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702648</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-29 01:16:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/70800586&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>412400</attachid>
            <date>2020-10-27 01:41:43 -0700</date>
            <delta_ts>2020-10-27 03:25:05 -0700</delta_ts>
            <desc>layout test: intersection-observer-callback-leak.html</desc>
            <filename>intersection-observer-callback-leak.html</filename>
            <type>text/html</type>
            <size>1774</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkPXRydWUgXSAtLT4KPGh0bWw+Cgo8aGVhZD4KICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KPC9oZWFkPgoKPGJv
ZHk+CiAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgPHNjcmlwdD4KICAgICAgICBm
dW5jdGlvbiBhY2Nlc3NUb09ic2VydmVySW5DYWxsYmFjaygpIHsKICAgICAgICAgICAgbGV0IHRl
c3QgPSBhc3luY190ZXN0KCJ0ZXN0OiBJbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgaW5zaWRlIGNhbGxi
YWNrIHNob3VsZCBiZSBnYXJiYWdlIGNvbGxlY3RlZCBpZiBubyBvbmUgcmVmZXJzIHRvIGl0Iik7
CiAgICAgICAgICAgIGxldCBpbml0aWFsT2JzZXJ2ZXJDb3VudCA9IGludGVybmFscy5udW1iZXJP
ZkludGVyc2VjdGlvbk9ic2VydmVycyhkb2N1bWVudCk7CiAgICAgICAgICAgIGNvbnN0IGl0ZXJh
dGlvbkNvdW50ID0gNTA7CiAgICAgICAgICAgIGxldCBjYWxsYmFja0NvdW50ID0gMDsKICAgICAg
ICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVyYXRpb25Db3VudDsgKytqKSB7CiAgICAgICAg
ICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAg
ICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOwogICAgICAgICAgICAgICAgbGV0
IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+IHsKICAgICAgICAgICAg
ICAgICAgICBjYWxsYmFja0NvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlz
Y29ubmVjdCgpOwogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChkaXYp
OwogICAgICAgICAgICAgICAgICAgIGlmIChjYWxsYmFja0NvdW50ID09IGl0ZXJhdGlvbkNvdW50
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3Quc3RlcCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IG9ic2VydmVyQ291bnQgPSBpbnRlcm5hbHMubnVtYmVyT2ZJbnRlcnNlY3Rpb25P
YnNlcnZlcnMoZG9jdW1lbnQpIC0gaW5pdGlhbE9ic2VydmVyQ291bnQ7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUob2JzZXJ2ZXJDb3VudCA8IGl0ZXJhdGlvbkNv
dW50LCAnSW50ZXJzZWN0aW9uIG9ic2VydmVycyBzaG91bGQgYmUgY29sbGVjdGVkLicpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgb2JzZXJ2ZXIub2Jz
ZXJ2ZShkaXYpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB3aW5kb3cub25sb2Fk
ID0gYWNjZXNzVG9PYnNlcnZlckluQ2FsbGJhY2soKTsKICAgIDwvc2NyaXB0PgoKPC9ib2R5PgoK
PC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>412401</attachid>
            <date>2020-10-27 01:44:36 -0700</date>
            <delta_ts>2020-10-27 03:25:05 -0700</delta_ts>
            <desc>check-observer-number-in-timeline.html</desc>
            <filename>new.html</filename>
            <type>text/html</type>
            <size>874</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkPXRydWUgXSAtLT4KPGh0bWw+Cgo8aGVhZD4KPC9oZWFk
PgoKPGJvZHk+CiAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgPHNjcmlwdD4KICAg
ICAgICBmdW5jdGlvbiBhY2Nlc3NUb09ic2VydmVySW5DYWxsYmFjaygpIHsKICAgICAgICAgICAg
Y29uc3QgaXRlcmF0aW9uQ291bnQgPSA1MDsKICAgICAgICAgICAgbGV0IGNhbGxiYWNrQ291bnQg
PSAwOwogICAgICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRhaW5lciIpOwogICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGl0ZXJhdGlvbkNv
dW50OyArK2opIHsKICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7
CiAgICAgICAgICAgICAgICBsZXQgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
KCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrQ291bnQrKzsKICAgICAgICAgICAg
ICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgY29udGFp
bmVyLnJlbW92ZUNoaWxkKGRpdik7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg
IG9ic2VydmVyLm9ic2VydmUoZGl2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB3
aW5kb3cub25sb2FkID0gYWNjZXNzVG9PYnNlcnZlckluQ2FsbGJhY2soKTsKICAgIDwvc2NyaXB0
PgoKPC9ib2R5PgoKPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412406</attachid>
            <date>2020-10-27 03:22:34 -0700</date>
            <delta_ts>2020-10-27 03:41:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218225-20201027182230.patch</filename>
            <type>text/plain</type>
            <size>12565</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzZGZkYmMxODg5Mjlk
NGI1OTliNjY5MzRkYzdkZDQ0YTk4MzFhMS4uOTdlOTU4NjU2NjFmNjkxZDZhZmI4OWY2NmYzYTE5
MjMzMTEyOTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTI3ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrIGxlYWtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVbmxlc3MgdGhlIHBhZ2UgaXMgdW5sb2FkZWQsIEpTSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDYWxsYmFjayBhbmQgb2JqZWN0cyBpbnNpZGUgaXQgY2FuIG5vdCBiZSBnYXJiYWdl
IGNvbGxlY3RlZCBwcm9wZXJseS4KKyAgICAgICAgVG8gZml4IHRoaXMsIG1ha2UgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXJDYWxsYmFjayBhcyBhIHdlYWsgY2FsbGJhY2suIFRvIGtlZXAgaXQgYWxpdmUs
IGluIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuCisgICAg
ICAgIGFkZCB0aGUgY2FsbGJhY2sgdG8gdmlzaXRvci4KKworICAgICAgICBUZXN0OiBpbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbAor
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2suaWRsLgorICAgICAgICAoV2ViQ29yZTo6SlNJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2UvSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVy
OjpjYWxsYmFja0NvbmN1cnJlbnRseSk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNl
cnZlci5pZGw6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpoYXNDYWxs
YmFjayBjb25zdCk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
LmlkbDoKKwogMjAyMC0xMC0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdIFVzZSB0aGUgdGVybSBvdmVycmlkZGVuIGluc3RlYWQgb2Ygb3ZlcnJpZGUg
dG8gaW5kaWNhdGUgcHJpb3JpdHkgdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDk2NWFkYzEzMGYx
ZGY0MzY1YjA4Mjk5ZDI2NmQ2OGY5ZmNmODFiMWQuLmU1MWZkNjhhNGQ4ZGIwMDMyYWJkMTE4ZmQ4
OTNjZGVjYWI4NDljZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC01MzMsNiArNTMzLDcgQEAgYmluZGlu
Z3MvanMvSlNJREJSZXF1ZXN0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNJREJUcmFuc2FjdGlv
bkN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdC5j
cHAKIGJpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNJbnRl
cnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJFbnRyeUN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3Bw
CiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5MWU3NTdlM2Q4NjFiOTZh
NDA2MWJmNTYwODg5ZTJmZjk0YTViYWYuLjBiOGM4NjY3ZjA5MGQ5MzJmYmY5NWUxNzQwNTY0Zjk2
YWQyMGIxZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTkxOTgsNiArOTE5OCw3IEBACiAJCTU4MjRBQkE1MUFFODEzODQwMDkw
NzRCNyAvKiBSdWJ5VGV4dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUnVieVRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4MkRF
MzIyMUMzMEM4NTQwMEJFMDJBOCAvKiBUZXh0RGVjb3JhdGlvblBhaW50ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dERlY29yYXRpb25QYWludGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTgyREUzMjMxQzMwQzg1NDAwQkUwMkE4IC8q
IFRleHREZWNvcmF0aW9uUGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0RGVjb3JhdGlvblBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTg2OEM3RDUyNTQ2RTBCMzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcnNlY3Rpb25P
YnNlcnZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU4ODRGRTU2
MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXNpemVPYnNlcnZlckVudHJ5Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTg5NTU2RUMxOEQ0QTQ0MDAw
NzY0QjAzIC8qIEJvcmRlckVkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qm9yZGVyRWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEFFRTJGMzE4RDRC
Q0NGMDAyMkU3RkUgLyogQm9yZGVyRWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCb3JkZXJFZGdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyMjUzLDYgKzIyMjU0LDcgQEAKIAkJCQk1MTFFRjJDRTE3RjBGREYxMDBFNEZBMTYgLyogSlNJ
REJPYmplY3RTdG9yZUN1c3RvbS5jcHAgKi8sCiAJCQkJNTFFMjY5MzIxREQzQkM0MzAwNkI2QTU4
IC8qIEpTSURCVHJhbnNhY3Rpb25DdXN0b20uY3BwICovLAogCQkJCUE3RDAzMThEMEU5MzU0MDMw
MEUyNEFDRCAvKiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8sCisJCQkJNTg2OEM3RDUyNTQ2RTBC
MzAwQkY5REYzIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCTc3
QzEzRjA0MjE2NTY1OEEwMDJEOUM1RiAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0
b20uY3BwICovLAogCQkJCUNEMDMyMDE1MjI3OUY1QkYwMEREOUYwQiAvKiBKU01lZGlhQ2FwYWJp
bGl0aWVzQ3VzdG9tLmggKi8sCiAJCQkJQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVk
aWFMaXN0Q3VzdG9tLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0YmU1
MDNmNzRiZWRiMjRlYzc5NmIxYmI3ZWVmMDY0ZGZkOGRhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0ludGVyc2VjdGlv
bk9ic2VydmVyLmgiCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU0ludGVyc2VjdGlvbk9ic2VydmVyOjp2aXNp
dEFkZGl0aW9uYWxDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGlm
IChhdXRvKiBjYWxsYmFjayA9IHdyYXBwZWQoKS5jYWxsYmFja0NvbmN1cnJlbnRseSgpKQorICAg
ICAgICBjYWxsYmFjay0+dmlzaXRKU0Z1bmN0aW9uKHZpc2l0b3IpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgKaW5kZXggZDg5YjE5ZThjYWRjYWFm
NTg5ZDMxODRlM2Y4ZDZmNzA2MzFmYThmNi4uZGJmMzdhMTU1NWJjODg0NjljZmZiYTExYmFkOTQ5
M2NmY2U1YTZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25P
YnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIu
aApAQCAtOTksNiArOTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRRdWV1ZWRFbnRyeShS
ZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4mJik7CiAgICAgdm9pZCBub3RpZnkoKTsKIAor
ICAgIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sqIGNhbGxiYWNrQ29uY3VycmVudGx5KCkg
eyByZXR1cm4gbV9jYWxsYmFjay5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIEludGVyc2VjdGlv
bk9ic2VydmVyKERvY3VtZW50JiwgUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+JiYs
IENvbnRhaW5lck5vZGUqIHJvb3QsIExlbmd0aEJveCYmIHBhcnNlZFJvb3RNYXJnaW4sIFZlY3Rv
cjxkb3VibGU+JiYgdGhyZXNob2xkcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNl
Y3Rpb25PYnNlcnZlci5pZGwKaW5kZXggYjY1NDNlZDRhZTg5ZTQxMGJlN2E4ZWExNDgzMTA4ZDli
MzU5YjYyMC4uOTgwOTU2MzUzZTVkZDVjNDNmZDBlZGM1NjhiYzMyN2FhOWRlYWE1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5pZGwKQEAgLTI5LDcgKzI5
LDggQEAKICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9O
X09CU0VSVkVSLAogICAgIEVuYWJsZWRCeVNldHRpbmc9SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsCi0g
ICAgRXhwb3NlZD1XaW5kb3cKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBKU0N1c3RvbU1hcmtG
dW5jdGlvbiwKIF0gaW50ZXJmYWNlIEludGVyc2VjdGlvbk9ic2VydmVyIHsKICAgICBbQ2FsbFdp
dGg9RG9jdW1lbnRdIGNvbnN0cnVjdG9yKEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgY2Fs
bGJhY2ssIG9wdGlvbmFsIEludGVyc2VjdGlvbk9ic2VydmVySW5pdCBvcHRpb25zKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaApp
bmRleCA4YjY3MDFkZGU1MzkxNTg2YTVkNTQ5YzhhMDkyYmQzNDlkYjVhNzUxLi5hYzUzZWY2ZGI0
Yjc1NmJhNmI3YjUwNTg5NDk5OTljYzY3ODMxMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaApAQCAtNDEsNiArNDEsOCBAQCBj
bGFzcyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYgogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxi
YWNrOjpBY3RpdmVET01DYWxsYmFjazsKIAorICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFjaygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZv
aWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29uc3QgVmVjdG9yPFJlZjxJ
bnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mLCBJbnRlcnNlY3Rpb25PYnNlcnZlciYpID0gMDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVy
Q2FsbGJhY2suaWRsCmluZGV4IDg2MDliZGUzNDkzZmE5ODBjNGY2ZGIzY2FlMTRkM2ZlYmIxNTY4
YWEuLmJlNGIwZmU0YjE0YjZjMjg1NTQ5MzgwMGQ5ZjRiOWI4OTQ0NGZlMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmlkbApA
QCAtMjgsNCArMjgsNSBAQAogWwogICAgIENvbmRpdGlvbmFsPUlOVEVSU0VDVElPTl9PQlNFUlZF
UiwKICAgICBDYWxsYmFja1RoaXNPYmplY3Q9SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsCisgICAgSXNX
ZWFrQ2FsbGJhY2ssCiBdIGNhbGxiYWNrIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgPSB1
bmRlZmluZWQgKHNlcXVlbmNlPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+IGVudHJpZXMsIElu
dGVyc2VjdGlvbk9ic2VydmVyIG9ic2VydmVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjE1ZmUwNDAwY2IzMTA1OTBi
YmQ2NmY2Y2YwZDc3ODUyZWYyODUyLi4zNTE4M2YzMDJjNmY4ZTI5MmVjNjQwODgwY2EzMzQ3MDdh
ZjE2ODkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMjcgIENhdGhpZSBDaGVuICA8
Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEludGVyc2VjdGlvbk9ic2VydmVyQ2Fs
bGJhY2sgbGVhaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE4MjI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIGBpbnRlcm5hbHMubnVtYmVyT2ZMaXZlTm9kZXNgIHRvIGNoZWNrIHRoYXQgdGhlIG9i
amVjdHMgaW5zaWRlIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBjYW4gYmUgZ2FyYmFn
ZSBjb2xsZWN0ZWQuCisKKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0
aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxl
YWsuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMTQgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2df
MjJAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFjT1MgXSBhY2Nlc3NpYmlsaXR5L21hYy9zZWxl
Y3QtZWxlbWVudC1zZWxlY3Rpb24td2l0aC1vcHRncm91cHMuaHRtbCBpcyBhIGZsYWt5IGZhaWx1
cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWst
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2NTc1ZTAyYjdiM2Y2MDYwNTY2ZTIyNzE5ZmQwNGM0
YzdhYmM2YTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIHRlc3Q6IE5vZGVzIGluc2lkZSBjYWxsYmFjayBzaG91bGQg
YmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgbm8gb25lIHJlZmVycyB0byBpdAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVy
LWNhbGxiYWNrLWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNjFm
ZTdjMDliYmZmNWY4YzE3NTgwNjIzYjYzNDhlMTZmMmRmNTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNh
bGxiYWNrLWxlYWsuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpJbnRlcnNlY3Rpb25PYnNlcnZlckVuYWJs
ZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisKKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvZ2MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2
IGlkPSJjb250YWluZXIiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGFj
Y2Vzc1RvT2JzZXJ2ZXJJbkNhbGxiYWNrKCkgeworICAgICAgICAgICAgbGV0IHRlc3QgPSBhc3lu
Y190ZXN0KCJ0ZXN0OiBOb2RlcyBpbnNpZGUgY2FsbGJhY2sgc2hvdWxkIGJlIGdhcmJhZ2UgY29s
bGVjdGVkIGlmIG5vIG9uZSByZWZlcnMgdG8gaXQiKTsKKyAgICAgICAgICAgIGxldCBpbml0aWFs
Tm9kZXNDb3VudCA9IGludGVybmFscy5udW1iZXJPZkxpdmVOb2Rlcyhkb2N1bWVudCk7CisgICAg
ICAgICAgICBjb25zdCBpdGVyYXRpb25Db3VudCA9IDUwOworICAgICAgICAgICAgbGV0IGNhbGxi
YWNrQ291bnQgPSAwOworICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVyYXRpb25D
b3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRp
dik7CisgICAgICAgICAgICAgICAgbGV0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2Vy
dmVyKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tDb3VudCsrOworICAgICAg
ICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CisgICAgICAgICAgICAgICAgICAg
IGNvbnRhaW5lci5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2Fs
bGJhY2tDb3VudCA9PSBpdGVyYXRpb25Db3VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LnN0ZXAoKCkg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWRkaXRpb25hbE5vZGVz
Q291bnQgPSBpbnRlcm5hbHMubnVtYmVyT2ZMaXZlTm9kZXMoZG9jdW1lbnQpIC0gaW5pdGlhbE5v
ZGVzQ291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGFk
ZGl0aW9uYWxOb2Rlc0NvdW50IDwgaXRlcmF0aW9uQ291bnQsICdOb2RlcyBpbnNpZGUgY2FsbGJh
Y2sgc2hvdWxkIGJlIGNvbGxlY3RlZC4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBhY2Nlc3NUb09ic2Vy
dmVySW5DYWxsYmFjaygpOworICAgIDwvc2NyaXB0PgorCis8L2JvZHk+CisKKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>412407</attachid>
            <date>2020-10-27 03:25:05 -0700</date>
            <delta_ts>2020-10-27 03:25:05 -0700</delta_ts>
            <desc>check-observer-number-in-timeline.html</desc>
            <filename>new.html</filename>
            <type>text/html</type>
            <size>874</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkPXRydWUgXSAtLT4KPGh0bWw+Cgo8aGVhZD4KPC9oZWFk
PgoKPGJvZHk+CiAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgPHNjcmlwdD4KICAg
ICAgICBmdW5jdGlvbiBhY2Nlc3NUb09ic2VydmVySW5DYWxsYmFjaygpIHsKICAgICAgICAgICAg
Y29uc3QgaXRlcmF0aW9uQ291bnQgPSA1MDsKICAgICAgICAgICAgbGV0IGNhbGxiYWNrQ291bnQg
PSAwOwogICAgICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRhaW5lciIpOwogICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGl0ZXJhdGlvbkNv
dW50OyArK2opIHsKICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7
CiAgICAgICAgICAgICAgICBsZXQgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
KCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrQ291bnQrKzsKICAgICAgICAgICAg
ICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgY29udGFp
bmVyLnJlbW92ZUNoaWxkKGRpdik7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg
IG9ic2VydmVyLm9ic2VydmUoZGl2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB3
aW5kb3cub25sb2FkID0gYWNjZXNzVG9PYnNlcnZlckluQ2FsbGJhY2soKTsKICAgIDwvc2NyaXB0
PgoKPC9ib2R5PgoKPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412408</attachid>
            <date>2020-10-27 03:42:03 -0700</date>
            <delta_ts>2020-10-28 02:49:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218225-20201027184159.patch</filename>
            <type>text/plain</type>
            <size>12499</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM3NTFhZGRhM2MzNGFj
MDc0ZjQ4NzVjZWRmZWI4OTJhY2I1ZjYxZS4uNTAzYWY1MTExNTcwZmYzN2I2YjkxMDQwYWQ3Y2I2
Y2E5YjIwZjI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTI3ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrIGxlYWtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVbmxlc3MgdGhlIHBhZ2UgaXMgdW5sb2FkZWQsIEpTSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDYWxsYmFjayBhbmQgb2JqZWN0cyBpbnNpZGUgaXQgY2FuIG5vdCBiZSBnYXJiYWdl
IGNvbGxlY3RlZCBwcm9wZXJseS4KKyAgICAgICAgVG8gZml4IHRoaXMsIG1ha2UgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXJDYWxsYmFjayBhcyBhIHdlYWsgY2FsbGJhY2suIFRvIGtlZXAgaXQgYWxpdmUs
IGluIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuCisgICAg
ICAgIGFkZCB0aGUgY2FsbGJhY2sgdG8gdmlzaXRvci4KKworICAgICAgICBUZXN0OiBpbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbAor
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2suaWRsLgorICAgICAgICAoV2ViQ29yZTo6SlNJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2UvSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVy
OjpjYWxsYmFja0NvbmN1cnJlbnRseSk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNl
cnZlci5pZGw6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpoYXNDYWxs
YmFjayBjb25zdCk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
LmlkbDoKKwogMjAyMC0xMC0yNyAgVGV0c3VoYXJ1IE9oemVraSAgPHRldHN1aGFydS5vaHpla2lA
Z21haWwuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24gdG8gZW51
bSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyZmYyNTViNWVmMTM1MWFlNjNmNmNlOTVkM2ZhNmUw
MTc0MmFlYThiLi45YjdiYWE5YzBkOTBhNjg1NmU5ZDc0ZmYyMDQ5NzA1YmY1YmJiMzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtNTQ0LDYgKzU0NCw3IEBAIGJpbmRpbmdzL2pzL0pTSURCUmVxdWVzdEN1
c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTSURCVHJhbnNhY3Rpb25DdXN0b20uY3BwCiBiaW5kaW5n
cy9qcy9KU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3QuY3BwCiBiaW5kaW5ncy9qcy9KU0lt
YWdlRGF0YUN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwCiBiaW5kaW5ncy9qcy9KU0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcAogYmluZGluZ3MvanMvSlNMb2Nh
dGlvbkN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2OTQwMzhiMDgwZWY2MTk0Mzg0NTgyMGJkY2M0OWRhOWU2ZDI5
MTExLi42NGJhNmE2ZjQ2MmFjMzQ5NmI4ZDJkNzE4ZTE1YjJlMGMzMzBkYmNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDAx
MSw2ICsxMDAxMSw3IEBACiAJCTc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRl
eEFycmF5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTVmVy
dGV4QXJyYXlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdBQUQ2ODMx
RUNGQjY2MjAwQkZBMkQxIC8qIENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3N0FBRDY4NTFFQ0ZCRDM5MDBCRkEyRDEgLyogQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4NjhDN0Q1MjU0NkUwQjMwMEJG
OURGMyAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0MxM0YwNDIxNjU2NThBMDAyRDlDNUYgLyog
SlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc3Q0FBQUVGMUYyRkMzNTAwMENCNUM4RCAvKiBWaXN1YWxWaWV3cG9ydC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlzdWFsVmlld3BvcnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3N0Q1MEZGQTFFRDRFQzc4MDBEQTRDODcgLyogQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIzNjEsNiAr
MjIzNjIsNyBAQAogCQkJCTUxMUVGMkNFMTdGMEZERjEwMEU0RkExNiAvKiBKU0lEQk9iamVjdFN0
b3JlQ3VzdG9tLmNwcCAqLywKIAkJCQk1MUUyNjkzMjFERDNCQzQzMDA2QjZBNTggLyogSlNJREJU
cmFuc2FjdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJQTdEMDMxOEQwRTkzNTQwMzAwRTI0QUNEIC8q
IEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCAqLywKKwkJCQk1ODY4QzdENTI1NDZFMEIzMDBCRjlERjMg
LyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJNzdDMTNGMDQyMTY1
NjU4QTAwMkQ5QzVGIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAgKi8s
CiAJCQkJQ0QwMzIwMTUyMjc5RjVCRjAwREQ5RjBCIC8qIEpTTWVkaWFDYXBhYmlsaXRpZXNDdXN0
b20uaCAqLywKIAkJCQlBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0
b20uaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRiZTUwM2Y3NGJlZGIy
NGVjNzk2YjFiYjdlZWYwNjRkZmQ4ZGExYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXIu
aCIKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2b2lkIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25h
bENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgaWYgKGF1dG8qIGNh
bGxiYWNrID0gd3JhcHBlZCgpLmNhbGxiYWNrQ29uY3VycmVudGx5KCkpCisgICAgICAgIGNhbGxi
YWNrLT52aXNpdEpTRnVuY3Rpb24odmlzaXRvcik7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAppbmRleCBkODliMTllOGNhZGNhYWY1ODlkMzE4NGUz
ZjhkNmY3MDYzMWZhOGY2Li5kYmYzN2ExNTU1YmM4ODQ2OWNmZmJhMTFiYWQ5NDkzY2ZjZTVhNmIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCkBAIC05OSw2
ICs5OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZFF1ZXVlZEVudHJ5KFJlZjxJbnRlcnNl
Y3Rpb25PYnNlcnZlckVudHJ5PiYmKTsKICAgICB2b2lkIG5vdGlmeSgpOwogCisgICAgSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayogY2FsbGJhY2tDb25jdXJyZW50bHkoKSB7IHJldHVybiBt
X2NhbGxiYWNrLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
RG9jdW1lbnQmLCBSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4mJiwgQ29udGFpbmVy
Tm9kZSogcm9vdCwgTGVuZ3RoQm94JiYgcGFyc2VkUm9vdE1hcmdpbiwgVmVjdG9yPGRvdWJsZT4m
JiB0aHJlc2hvbGRzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNl
Y3Rpb25PYnNlcnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2Vy
dmVyLmlkbAppbmRleCBiNjU0M2VkNGFlODllNDEwYmU3YThlYTE0ODMxMDhkOWIzNTliNjIwLi45
ODA5NTYzNTNlNWRkNWM0M2ZkMGVkYzU2OGJjMzI3YWE5ZGVhYTVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmlkbApAQCAtMjksNyArMjksOCBAQAogICAg
IEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1JTlRFUlNFQ1RJT05fT0JTRVJWRVIs
CiAgICAgRW5hYmxlZEJ5U2V0dGluZz1JbnRlcnNlY3Rpb25PYnNlcnZlciwKLSAgICBFeHBvc2Vk
PVdpbmRvdworICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAog
XSBpbnRlcmZhY2UgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgewogICAgIFtDYWxsV2l0aD1Eb2N1bWVu
dF0gY29uc3RydWN0b3IoSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBjYWxsYmFjaywgb3B0
aW9uYWwgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0IG9wdGlvbnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCmluZGV4IDhiNjcw
MWRkZTUzOTE1ODZhNWQ1NDljOGEwOTJiZDM0OWRiNWE3NTEuLmFjNTNlZjZkYjRiNzU2YmE2Yjdi
NTA1ODk0OTk5OWNjNjc4MzEzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCkBAIC00MSw2ICs0MSw4IEBAIGNsYXNzIEludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiCiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwogCisgICAgdmlydHVhbCBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKwogICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxl
RXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2VjdGlv
bk9ic2VydmVyRW50cnk+PiYsIEludGVyc2VjdGlvbk9ic2VydmVyJikgPSAwOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5p
ZGwKaW5kZXggODYwOWJkZTM0OTNmYTk4MGM0ZjZkYjNjYWUxNGQzZmViYjE1NjhhYS4uYmU0YjBm
ZTRiMTRiNmMyODU1NDkzODAwZDlmNGI5Yjg5NDQ0ZmUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaWRsCkBAIC0yOCw0ICsy
OCw1IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9OX09CU0VSVkVSLAogICAgIENh
bGxiYWNrVGhpc09iamVjdD1JbnRlcnNlY3Rpb25PYnNlcnZlciwKKyAgICBJc1dlYWtDYWxsYmFj
aywKIF0gY2FsbGJhY2sgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IHVuZGVmaW5lZCAo
c2VxdWVuY2U8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4gZW50cmllcywgSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQxMjM0OWVmM2M1NzQzMjYzMzg3MGZhZTgzZTU5
NzI1ZTA1N2JkZTQuLjdiNjRmN2ZmMWI3MDc2YmYwNmVmNDkyNGZhMzk2NGFlOTNiNWI0NjUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMC0yNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVu
QGlnYWxpYS5jb20+CisKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBsZWFr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYGlu
dGVybmFscy5udW1iZXJPZkxpdmVOb2Rlc2AgdG8gY2hlY2sgdGhhdCB0aGUgb2JqZWN0cyBpbnNp
ZGUgSlNJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIGNhbiBiZSBnYXJiYWdlIGNvbGxlY3Rl
ZC4KKworICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGludGVyc2Vj
dGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sOiBB
ZGRlZC4KKwogMjAyMC0xMC0yNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgR1RLIEdTdHJlYW1lciBnYXJkZW5pbmcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2NTc1ZTAyYjdiM2Y2MDYwNTY2ZTIyNzE5ZmQwNGM0YzdhYmM2YTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50
ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIHRlc3Q6IE5vZGVzIGluc2lkZSBjYWxsYmFjayBzaG91bGQgYmUgZ2FyYmFn
ZSBjb2xsZWN0ZWQgaWYgbm8gb25lIHJlZmVycyB0byBpdAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNr
LWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rp
b24tb2JzZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNjFmZTdjMDliYmZm
NWY4YzE3NTgwNjIzYjYzNDhlMTZmMmRmNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxl
YWsuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpJbnRlcnNlY3Rpb25PYnNlcnZlckVuYWJsZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+CisKKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvZ2MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2IGlkPSJjb250
YWluZXIiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGFjY2Vzc1RvT2Jz
ZXJ2ZXJJbkNhbGxiYWNrKCkgeworICAgICAgICAgICAgbGV0IHRlc3QgPSBhc3luY190ZXN0KCJ0
ZXN0OiBOb2RlcyBpbnNpZGUgY2FsbGJhY2sgc2hvdWxkIGJlIGdhcmJhZ2UgY29sbGVjdGVkIGlm
IG5vIG9uZSByZWZlcnMgdG8gaXQiKTsKKyAgICAgICAgICAgIGxldCBpbml0aWFsTm9kZXNDb3Vu
dCA9IGludGVybmFscy5udW1iZXJPZkxpdmVOb2Rlcyhkb2N1bWVudCk7CisgICAgICAgICAgICBj
b25zdCBpdGVyYXRpb25Db3VudCA9IDUwOworICAgICAgICAgICAgbGV0IGNhbGxiYWNrQ291bnQg
PSAwOworICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVyYXRpb25Db3VudDsgKytq
KSB7CisgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7CisgICAg
ICAgICAgICAgICAgbGV0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tDb3VudCsrOworICAgICAgICAgICAgICAg
ICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5l
ci5yZW1vdmVDaGlsZChkaXYpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2tDb3Vu
dCA9PSBpdGVyYXRpb25Db3VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnJl
cXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2MoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LnN0ZXAoKCkgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWRkaXRpb25hbE5vZGVzQ291bnQgPSBp
bnRlcm5hbHMubnVtYmVyT2ZMaXZlTm9kZXMoZG9jdW1lbnQpIC0gaW5pdGlhbE5vZGVzQ291bnQ7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGFkZGl0aW9uYWxO
b2Rlc0NvdW50IDwgaXRlcmF0aW9uQ291bnQsICdOb2RlcyBpbnNpZGUgY2FsbGJhY2sgc2hvdWxk
IGJlIGNvbGxlY3RlZC4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBhY2Nlc3NUb09ic2VydmVySW5DYWxs
YmFjaygpOworICAgIDwvc2NyaXB0PgorCis8L2JvZHk+CisKKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412514</attachid>
            <date>2020-10-28 02:49:41 -0700</date>
            <delta_ts>2020-10-29 00:44:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218225-20201028174937.patch</filename>
            <type>text/plain</type>
            <size>16176</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM3NTFhZGRhM2MzNGFj
MDc0ZjQ4NzVjZWRmZWI4OTJhY2I1ZjYxZS4uNTAzYWY1MTExNTcwZmYzN2I2YjkxMDQwYWQ3Y2I2
Y2E5YjIwZjI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTI3ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrIGxlYWtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVbmxlc3MgdGhlIHBhZ2UgaXMgdW5sb2FkZWQsIEpTSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDYWxsYmFjayBhbmQgb2JqZWN0cyBpbnNpZGUgaXQgY2FuIG5vdCBiZSBnYXJiYWdl
IGNvbGxlY3RlZCBwcm9wZXJseS4KKyAgICAgICAgVG8gZml4IHRoaXMsIG1ha2UgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXJDYWxsYmFjayBhcyBhIHdlYWsgY2FsbGJhY2suIFRvIGtlZXAgaXQgYWxpdmUs
IGluIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuCisgICAg
ICAgIGFkZCB0aGUgY2FsbGJhY2sgdG8gdmlzaXRvci4KKworICAgICAgICBUZXN0OiBpbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbAor
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2suaWRsLgorICAgICAgICAoV2ViQ29yZTo6SlNJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2UvSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVy
OjpjYWxsYmFja0NvbmN1cnJlbnRseSk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNl
cnZlci5pZGw6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpoYXNDYWxs
YmFjayBjb25zdCk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
LmlkbDoKKwogMjAyMC0xMC0yNyAgVGV0c3VoYXJ1IE9oemVraSAgPHRldHN1aGFydS5vaHpla2lA
Z21haWwuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24gdG8gZW51
bSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyZmYyNTViNWVmMTM1MWFlNjNmNmNlOTVkM2ZhNmUw
MTc0MmFlYThiLi45YjdiYWE5YzBkOTBhNjg1NmU5ZDc0ZmYyMDQ5NzA1YmY1YmJiMzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtNTQ0LDYgKzU0NCw3IEBAIGJpbmRpbmdzL2pzL0pTSURCUmVxdWVzdEN1
c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTSURCVHJhbnNhY3Rpb25DdXN0b20uY3BwCiBiaW5kaW5n
cy9qcy9KU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3QuY3BwCiBiaW5kaW5ncy9qcy9KU0lt
YWdlRGF0YUN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0
b20uY3BwCiBiaW5kaW5ncy9qcy9KU0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3Bw
CiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcAogYmluZGluZ3MvanMvSlNMb2Nh
dGlvbkN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2OTQwMzhiMDgwZWY2MTk0Mzg0NTgyMGJkY2M0OWRhOWU2ZDI5
MTExLi42NGJhNmE2ZjQ2MmFjMzQ5NmI4ZDJkNzE4ZTE1YjJlMGMzMzBkYmNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDAx
MSw2ICsxMDAxMSw3IEBACiAJCTc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRl
eEFycmF5T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTVmVy
dGV4QXJyYXlPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdBQUQ2ODMx
RUNGQjY2MjAwQkZBMkQxIC8qIENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3N0FBRDY4NTFFQ0ZCRDM5MDBCRkEyRDEgLyogQ3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU4NjhDN0Q1MjU0NkUwQjMwMEJG
OURGMyAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0MxM0YwNDIxNjU2NThBMDAyRDlDNUYgLyog
SlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc3Q0FBQUVGMUYyRkMzNTAwMENCNUM4RCAvKiBWaXN1YWxWaWV3cG9ydC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlzdWFsVmlld3BvcnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3N0Q1MEZGQTFFRDRFQzc4MDBEQTRDODcgLyogQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIzNjEsNiAr
MjIzNjIsNyBAQAogCQkJCTUxMUVGMkNFMTdGMEZERjEwMEU0RkExNiAvKiBKU0lEQk9iamVjdFN0
b3JlQ3VzdG9tLmNwcCAqLywKIAkJCQk1MUUyNjkzMjFERDNCQzQzMDA2QjZBNTggLyogSlNJREJU
cmFuc2FjdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJQTdEMDMxOEQwRTkzNTQwMzAwRTI0QUNEIC8q
IEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCAqLywKKwkJCQk1ODY4QzdENTI1NDZFMEIzMDBCRjlERjMg
LyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJNzdDMTNGMDQyMTY1
NjU4QTAwMkQ5QzVGIC8qIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAgKi8s
CiAJCQkJQ0QwMzIwMTUyMjc5RjVCRjAwREQ5RjBCIC8qIEpTTWVkaWFDYXBhYmlsaXRpZXNDdXN0
b20uaCAqLywKIAkJCQlBRDcyNkZFNzE2RDlGMjA0MDAzQTRFNkQgLyogSlNNZWRpYUxpc3RDdXN0
b20uaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRiZTUwM2Y3NGJlZGIy
NGVjNzk2YjFiYjdlZWYwNjRkZmQ4ZGExYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXIu
aCIKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2b2lkIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25h
bENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgaWYgKGF1dG8qIGNh
bGxiYWNrID0gd3JhcHBlZCgpLmNhbGxiYWNrQ29uY3VycmVudGx5KCkpCisgICAgICAgIGNhbGxi
YWNrLT52aXNpdEpTRnVuY3Rpb24odmlzaXRvcik7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAppbmRleCBkODliMTllOGNhZGNhYWY1ODlkMzE4NGUz
ZjhkNmY3MDYzMWZhOGY2Li5kYmYzN2ExNTU1YmM4ODQ2OWNmZmJhMTFiYWQ5NDkzY2ZjZTVhNmIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCkBAIC05OSw2
ICs5OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZFF1ZXVlZEVudHJ5KFJlZjxJbnRlcnNl
Y3Rpb25PYnNlcnZlckVudHJ5PiYmKTsKICAgICB2b2lkIG5vdGlmeSgpOwogCisgICAgSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayogY2FsbGJhY2tDb25jdXJyZW50bHkoKSB7IHJldHVybiBt
X2NhbGxiYWNrLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
RG9jdW1lbnQmLCBSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4mJiwgQ29udGFpbmVy
Tm9kZSogcm9vdCwgTGVuZ3RoQm94JiYgcGFyc2VkUm9vdE1hcmdpbiwgVmVjdG9yPGRvdWJsZT4m
JiB0aHJlc2hvbGRzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNl
Y3Rpb25PYnNlcnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2Vy
dmVyLmlkbAppbmRleCBiNjU0M2VkNGFlODllNDEwYmU3YThlYTE0ODMxMDhkOWIzNTliNjIwLi45
ODA5NTYzNTNlNWRkNWM0M2ZkMGVkYzU2OGJjMzI3YWE5ZGVhYTVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmlkbApAQCAtMjksNyArMjksOCBAQAogICAg
IEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1JTlRFUlNFQ1RJT05fT0JTRVJWRVIs
CiAgICAgRW5hYmxlZEJ5U2V0dGluZz1JbnRlcnNlY3Rpb25PYnNlcnZlciwKLSAgICBFeHBvc2Vk
PVdpbmRvdworICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAog
XSBpbnRlcmZhY2UgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgewogICAgIFtDYWxsV2l0aD1Eb2N1bWVu
dF0gY29uc3RydWN0b3IoSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBjYWxsYmFjaywgb3B0
aW9uYWwgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0IG9wdGlvbnMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCmluZGV4IDhiNjcw
MWRkZTUzOTE1ODZhNWQ1NDljOGEwOTJiZDM0OWRiNWE3NTEuLmFjNTNlZjZkYjRiNzU2YmE2Yjdi
NTA1ODk0OTk5OWNjNjc4MzEzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCkBAIC00MSw2ICs0MSw4IEBAIGNsYXNzIEludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiCiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwogCisgICAgdmlydHVhbCBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKwogICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxl
RXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2VjdGlv
bk9ic2VydmVyRW50cnk+PiYsIEludGVyc2VjdGlvbk9ic2VydmVyJikgPSAwOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5p
ZGwKaW5kZXggODYwOWJkZTM0OTNmYTk4MGM0ZjZkYjNjYWUxNGQzZmViYjE1NjhhYS4uYmU0YjBm
ZTRiMTRiNmMyODU1NDkzODAwZDlmNGI5Yjg5NDQ0ZmUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaWRsCkBAIC0yOCw0ICsy
OCw1IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9OX09CU0VSVkVSLAogICAgIENh
bGxiYWNrVGhpc09iamVjdD1JbnRlcnNlY3Rpb25PYnNlcnZlciwKKyAgICBJc1dlYWtDYWxsYmFj
aywKIF0gY2FsbGJhY2sgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IHVuZGVmaW5lZCAo
c2VxdWVuY2U8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4gZW50cmllcywgSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQxMjM0OWVmM2M1NzQzMjYzMzg3MGZhZTgzZTU5
NzI1ZTA1N2JkZTQuLjlkNmEwYTA3ZWFmMGQ3MTU1OGFmNDJiMWU2ZDAyMGM1ZTI2YzU1MGEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0xMC0yNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVu
QGlnYWxpYS5jb20+CisKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBsZWFr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyMjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBpbnRl
cnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stYWZ0ZXItZ2MuaHRtbCwgdGhlIGNhbGxiYWNrcyB3
aXRoIG9ic2VydmVkIHRhcmdldHMgZGVsZXRlZCBzaG91bGQgc3RheSBhbGl2ZSBhcyBsb25nIGFz
IG9ic2VydmVycyBhcmUgYWxpdmUuCisgICAgICAgIEluIGludGVyc2VjdGlvbi1vYnNlcnZlci1j
YWxsYmFjay1sZWFrLmh0bWwsIHVzZSBgaW50ZXJuYWxzLm51bWJlck9mTGl2ZU5vZGVzYCB0byBj
aGVjayB0aGF0IHRoZSBvYmplY3RzIGluc2lkZSBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJh
Y2sKKyAgICAgICAgY2FuIGJlIGdhcmJhZ2UgY29sbGVjdGVkLgorCisgICAgICAgICogaW50ZXJz
ZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1hZnRlci1nYy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRl
cnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stYWZ0ZXItZ2MuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1s
ZWFrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVy
L2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWw6IEFkZGVkLgorCiAyMDIw
LTEwLTI3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBHVEsgR1N0cmVhbWVyIGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFj
ay1hZnRlci1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2
ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWFmdGVyLWdjLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZjdhZTU0NTY5YTdkNTUzOTg2NzlhZDg5MmY2YmQyOGUyOTEwYmRkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2Vj
dGlvbi1vYnNlcnZlci1jYWxsYmFjay1hZnRlci1nYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgdGVzdDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFja3Mgc3RheSBhbGl2
ZSBpZiBhY2NvcmRpbmcgb2JzZXJ2ZXJzIGlzIGFsaXZlCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2st
YWZ0ZXItZ2MuaHRtbCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stYWZ0ZXItZ2MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTkyNTc5
YmNlYWM4ZTQ0ODdmZmEyZTM1Nzc2MDAzZjQ3ZDczNjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxs
YmFjay1hZnRlci1nYy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkludGVyc2VjdGlvbk9ic2VydmVyRW5h
YmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKworPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxk
aXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgYXN5bmMgZnVu
Y3Rpb24gY2FsbGJhY2tTdXJ2aXZlc0FmdGVyR0MoKSB7CisgICAgICAgICAgICBsZXQgdGVzdCA9
IGFzeW5jX3Rlc3QoInRlc3Q6IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2tzIHN0YXkgYWxp
dmUgaWYgYWNjb3JkaW5nIG9ic2VydmVycyBpcyBhbGl2ZSIpOworICAgICAgICAgICAgY29uc3Qg
aXRlcmF0aW9uQ291bnQgPSAxMDsKKyAgICAgICAgICAgIGxldCBkZWxldGVkTm9kZXNDb3VudCA9
IDA7CisgICAgICAgICAgICBsZXQgY2FsbGJhY2tDb3VudEFmdGVyRGVsZXRlID0gMDsKKyAgICAg
ICAgICAgIGxldCBvYnNlcnZlcnMgPSBbXTsKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsg
aiA8IGl0ZXJhdGlvbkNvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAgICAgICAgIGRp
di5zdGF0ZSA9ICJ0b0RlbGV0ZSI7CisgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBl
bmRDaGlsZChkaXYpOworICAgICAgICAgICAgICAgICAgICBsZXQgb2JzZXJ2ZXIgPSBuZXcgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIoZW50cmllcyA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoZW50cnkudGFyZ2V0LnN0YXRlID09ICJ0b0RlbGV0ZSIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVsZXRlZE5vZGVzQ291bnQrKzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGVudHJ5LnRhcmdldCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LnRhcmdldC5zdGF0ZSA9ICJkZWxldGVk
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlbGV0ZWROb2Rlc0NvdW50
ID09IGl0ZXJhdGlvbkNvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnku
dGFyZ2V0LnN0YXRlID09ICJuZXciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudHJ5LnRhcmdldC5zdGF0ZSA9ICJjaGVja2VkIjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2FsbGJhY2tDb3VudEFmdGVyRGVsZXRlKys7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGNhbGxiYWNrQ291bnRBZnRlckRlbGV0ZSA9PSBpdGVyYXRpb25Db3VudCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZGl2KTsKKyAgICAg
ICAgICAgICAgICAgICAgb2JzZXJ2ZXJzW2pdID0gb2JzZXJ2ZXI7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBnYygpOworICAgICAgICAgICAgZm9yIChs
ZXQgaiA9IDA7IGogPCBpdGVyYXRpb25Db3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgY29u
c3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAgICAg
ZGl2LnN0YXRlID0gIm5ldyI7CisgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxk
KGRpdik7CisgICAgICAgICAgICAgICAgb2JzZXJ2ZXJzW2pdLm9ic2VydmUoZGl2KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB3aW5kb3cub25sb2FkID0gY2FsbGJhY2tTdXJ2
aXZlc0FmdGVyR0MoKTsKKyAgICA8L3NjcmlwdD4KKworPC9ib2R5PgorCis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0
aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1sZWFrLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXItY2FsbGJhY2stbGVhay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY1NzVlMDJiN2Iz
ZjYwNjA1NjZlMjI3MTlmZDA0YzRjN2FiYzZhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2st
bGVhay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgdGVzdDogTm9kZXMgaW5z
aWRlIGNhbGxiYWNrIHNob3VsZCBiZSBnYXJiYWdlIGNvbGxlY3RlZCBpZiBubyBvbmUgcmVmZXJz
IHRvIGl0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sIGIvTGF5b3V0VGVzdHMvaW50
ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWI2MWZlN2MwOWJiZmY1ZjhjMTc1ODA2MjNiNjM0OGUxNmYyZGY1MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9pbnRl
cnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stbGVhay5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkludGVy
c2VjdGlvbk9ic2VydmVyRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKworPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
CisKKzxib2R5PgorICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZnVuY3Rpb24gYWNjZXNzVG9PYnNlcnZlckluQ2FsbGJhY2soKSB7CisgICAgICAg
ICAgICBsZXQgdGVzdCA9IGFzeW5jX3Rlc3QoInRlc3Q6IE5vZGVzIGluc2lkZSBjYWxsYmFjayBz
aG91bGQgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgbm8gb25lIHJlZmVycyB0byBpdCIpOworICAg
ICAgICAgICAgbGV0IGluaXRpYWxOb2Rlc0NvdW50ID0gaW50ZXJuYWxzLm51bWJlck9mTGl2ZU5v
ZGVzKGRvY3VtZW50KTsKKyAgICAgICAgICAgIGNvbnN0IGl0ZXJhdGlvbkNvdW50ID0gNTA7Cisg
ICAgICAgICAgICBsZXQgY2FsbGJhY2tDb3VudCA9IDA7CisgICAgICAgICAgICBmb3IgKGxldCBq
ID0gMDsgaiA8IGl0ZXJhdGlvbkNvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICBjb25zdCBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBjb250
YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICAgICAgICAgICAgICBsZXQgb2JzZXJ2ZXIgPSBu
ZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBjYWxs
YmFja0NvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsK
KyAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGRpdik7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChjYWxsYmFja0NvdW50ID09IGl0ZXJhdGlvbkNvdW50KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYygpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3Quc3RlcCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBhZGRpdGlvbmFsTm9kZXNDb3VudCA9IGludGVybmFscy5udW1iZXJPZkxpdmVOb2Rlcyhk
b2N1bWVudCkgLSBpbml0aWFsTm9kZXNDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoYWRkaXRpb25hbE5vZGVzQ291bnQgPCBpdGVyYXRpb25Db3VudCwg
J05vZGVzIGluc2lkZSBjYWxsYmFjayBzaG91bGQgYmUgY29sbGVjdGVkLicpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgb2JzZXJ2ZXIub2Jz
ZXJ2ZShkaXYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgd2luZG93Lm9u
bG9hZCA9IGFjY2Vzc1RvT2JzZXJ2ZXJJbkNhbGxiYWNrKCk7CisgICAgPC9zY3JpcHQ+CisKKzwv
Ym9keT4KKworPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412622</attachid>
            <date>2020-10-29 00:44:12 -0700</date>
            <delta_ts>2020-10-29 01:15:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218225-20201029154410.patch</filename>
            <type>text/plain</type>
            <size>16172</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM3NTFhZGRhM2MzNGFj
MDc0ZjQ4NzVjZWRmZWI4OTJhY2I1ZjYxZS4uZjBhOTZhYjJiN2JhOTgyYTA0MTJiNjlhNzRhZTc4
YzBhOTk3NmM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTI3ICBDYXRo
aWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrIGxlYWtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgyMjUKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
CisKKyAgICAgICAgVW5sZXNzIHRoZSBwYWdlIGlzIHVubG9hZGVkLCBKU0ludGVyc2VjdGlvbk9i
c2VydmVyQ2FsbGJhY2sgYW5kIG9iamVjdHMgaW5zaWRlIGl0IGNhbiBub3QgYmUgZ2FyYmFnZSBj
b2xsZWN0ZWQgcHJvcGVybHkuCisgICAgICAgIFRvIGZpeCB0aGlzLCBtYWtlIEludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2sgYXMgYSB3ZWFrIGNhbGxiYWNrLiBUbyBrZWVwIGl0IGFsaXZlLCBp
biBKU0ludGVyc2VjdGlvbk9ic2VydmVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbgorICAgICAg
ICBhZGQgdGhlIGNhbGxiYWNrIHRvIHZpc2l0b3IuCisKKyAgICAgICAgVGVzdDogaW50ZXJzZWN0
aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWwKKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludGVyc2VjdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrLmlkbC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKToKKyAgICAgICAgKiBwYWdlL0ludGVyc2Vj
dGlvbk9ic2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6
Y2FsbGJhY2tDb25jdXJyZW50bHkpOgorICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIuaWRsOgorICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjazo6aGFzQ2FsbGJh
Y2sgY29uc3QpOgorICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5p
ZGw6CisKIDIwMjAtMTAtMjcgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdt
YWlsLmNvbT4KIAogICAgICAgICBNYWtlIFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uIHRvIGVudW0g
Y2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggMmZmMjU1YjVlZjEzNTFhZTYzZjZjZTk1ZDNmYTZlMDE3
NDJhZWE4Yi4uOWI3YmFhOWMwZDkwYTY4NTZlOWQ3NGZmMjA0OTcwNWJmNWJiYjMyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTU0NCw2ICs1NDQsNyBAQCBiaW5kaW5ncy9qcy9KU0lEQlJlcXVlc3RDdXN0
b20uY3BwCiBiaW5kaW5ncy9qcy9KU0lEQlRyYW5zYWN0aW9uQ3VzdG9tLmNwcAogYmluZGluZ3Mv
anMvSlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0LmNwcAogYmluZGluZ3MvanMvSlNJbWFn
ZURhdGFDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Q3VzdG9tLmNwcAog
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKIGJpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNjk0MDM4YjA4MGVmNjE5NDM4NDU4MjBiZGNjNDlkYTllNmQyOTEx
MS4uNjRiYTZhNmY0NjJhYzM0OTZiOGQyZDcxOGUxNWIyZTBjMzMwZGJjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAwMTEs
NiArMTAwMTEsNyBAQAogCQk3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYgLyogSlNPRVNWZXJ0ZXhB
cnJheU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU1ZlcnRl
eEFycmF5T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3QUFENjgzMUVD
RkI2NjIwMEJGQTJEMSAvKiBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzdBQUQ2ODUxRUNGQkQzOTAwQkZBMkQxIC8qIENyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1ODY4QzdENTI1NDZFMEIzMDBCRjlE
RjMgLyogSlNJbnRlcnNlY3Rpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdDMTNGMDQyMTY1NjU4QTAwMkQ5QzVGIC8qIEpT
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3N0NBQUFFRjFGMkZDMzUwMDBDQjVDOEQgLyogVmlzdWFsVmlld3BvcnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpc3VhbFZpZXdwb3J0LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzdENTBGRkExRUQ0RUM3ODAwREE0Qzg3IC8qIENyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzYxLDYgKzIy
MzYyLDcgQEAKIAkJCQk1MTFFRjJDRTE3RjBGREYxMDBFNEZBMTYgLyogSlNJREJPYmplY3RTdG9y
ZUN1c3RvbS5jcHAgKi8sCiAJCQkJNTFFMjY5MzIxREQzQkM0MzAwNkI2QTU4IC8qIEpTSURCVHJh
bnNhY3Rpb25DdXN0b20uY3BwICovLAogCQkJCUE3RDAzMThEMEU5MzU0MDMwMEUyNEFDRCAvKiBK
U0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8sCisJCQkJNTg2OEM3RDUyNTQ2RTBCMzAwQkY5REYzIC8q
IEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAogCQkJCTc3QzEzRjA0MjE2NTY1
OEEwMDJEOUM1RiAvKiBKU0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnlDdXN0b20uY3BwICovLAog
CQkJCUNEMDMyMDE1MjI3OUY1QkYwMEREOUYwQiAvKiBKU01lZGlhQ2FwYWJpbGl0aWVzQ3VzdG9t
LmggKi8sCiAJCQkJQUQ3MjZGRTcxNkQ5RjIwNDAwM0E0RTZEIC8qIEpTTWVkaWFMaXN0Q3VzdG9t
LmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludGVyc2Vj
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0YmU1MDNmNzRiZWRiMjRl
Yzc5NmIxYmI3ZWVmMDY0ZGZkOGRhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0ludGVyc2VjdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAtMCwwICsx
LDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0ludGVyc2VjdGlvbk9ic2VydmVyLmgi
CisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordm9pZCBKU0ludGVyc2VjdGlvbk9ic2VydmVyOjp2aXNpdEFkZGl0aW9uYWxD
aGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGlmIChhdXRvKiBjYWxs
YmFjayA9IHdyYXBwZWQoKS5jYWxsYmFja0NvbmN1cnJlbnRseSgpKQorICAgICAgICBjYWxsYmFj
ay0+dmlzaXRKU0Z1bmN0aW9uKHZpc2l0b3IpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ludGVyc2VjdGlvbk9ic2VydmVyLmgKaW5kZXggZDg5YjE5ZThjYWRjYWFmNTg5ZDMxODRlM2Y4
ZDZmNzA2MzFmYThmNi4uZGJmMzdhMTU1NWJjODg0NjljZmZiYTExYmFkOTQ5M2NmY2U1YTZiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaApAQCAtOTksNiAr
OTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRRdWV1ZWRFbnRyeShSZWY8SW50ZXJzZWN0
aW9uT2JzZXJ2ZXJFbnRyeT4mJik7CiAgICAgdm9pZCBub3RpZnkoKTsKIAorICAgIEludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2sqIGNhbGxiYWNrQ29uY3VycmVudGx5KCkgeyByZXR1cm4gbV9j
YWxsYmFjay5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIEludGVyc2VjdGlvbk9ic2VydmVyKERv
Y3VtZW50JiwgUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+JiYsIENvbnRhaW5lck5v
ZGUqIHJvb3QsIExlbmd0aEJveCYmIHBhcnNlZFJvb3RNYXJnaW4sIFZlY3Rvcjxkb3VibGU+JiYg
dGhyZXNob2xkcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0
aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZl
ci5pZGwKaW5kZXggYjY1NDNlZDRhZTg5ZTQxMGJlN2E4ZWExNDgzMTA4ZDliMzU5YjYyMC4uOTgw
OTU2MzUzZTVkZDVjNDNmZDBlZGM1NjhiYzMyN2FhOWRlYWE1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5pZGwKQEAgLTI5LDcgKzI5LDggQEAKICAgICBB
Y3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9OX09CU0VSVkVSLAog
ICAgIEVuYWJsZWRCeVNldHRpbmc9SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsCi0gICAgRXhwb3NlZD1X
aW5kb3cKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKIF0g
aW50ZXJmYWNlIEludGVyc2VjdGlvbk9ic2VydmVyIHsKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnRd
IGNvbnN0cnVjdG9yKEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgY2FsbGJhY2ssIG9wdGlv
bmFsIEludGVyc2VjdGlvbk9ic2VydmVySW5pdCBvcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaAppbmRleCA4YjY3MDFk
ZGU1MzkxNTg2YTVkNTQ5YzhhMDkyYmQzNDlkYjVhNzUxLi5hYzUzZWY2ZGI0Yjc1NmJhNmI3YjUw
NTg5NDk5OTljYzY3ODMxMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBJbnRlcnNl
Y3Rpb25PYnNlcnZlckNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYgogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVE
T01DYWxsYmFjazsKIAorICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisKICAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2
ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29uc3QgVmVjdG9yPFJlZjxJbnRlcnNlY3Rpb25P
YnNlcnZlckVudHJ5Pj4mLCBJbnRlcnNlY3Rpb25PYnNlcnZlciYpID0gMDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaWRs
CmluZGV4IDg2MDliZGUzNDkzZmE5ODBjNGY2ZGIzY2FlMTRkM2ZlYmIxNTY4YWEuLmJlNGIwZmU0
YjE0YjZjMjg1NTQ5MzgwMGQ5ZjRiOWI4OTQ0NGZlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmlkbApAQCAtMjgsNCArMjgs
NSBAQAogWwogICAgIENvbmRpdGlvbmFsPUlOVEVSU0VDVElPTl9PQlNFUlZFUiwKICAgICBDYWxs
YmFja1RoaXNPYmplY3Q9SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsCisgICAgSXNXZWFrQ2FsbGJhY2ss
CiBdIGNhbGxiYWNrIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgPSB1bmRlZmluZWQgKHNl
cXVlbmNlPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+IGVudHJpZXMsIEludGVyc2VjdGlvbk9i
c2VydmVyIG9ic2VydmVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMTIzNDllZjNjNTc0MzI2MzM4NzBmYWU4M2U1OTcy
NWUwNTdiZGU0Li5iOGI4NzQ1OGM4MTZkYjMyNTQ0Zjc5OWNkOWU3OTU4MmY5NjA4ZTlmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMTAtMjcgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgbGVhawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MjI1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEluIGludGVyc2Vj
dGlvbi1vYnNlcnZlci1jYWxsYmFjay1hZnRlci1nYy5odG1sLCB0aGUgY2FsbGJhY2tzIHdpdGgg
b2JzZXJ2ZWQgdGFyZ2V0cyBkZWxldGVkIHNob3VsZCBzdGF5IGFsaXZlIGFzIGxvbmcgYXMgb2Jz
ZXJ2ZXJzIGFyZSBhbGl2ZS4KKyAgICAgICAgSW4gaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxi
YWNrLWxlYWsuaHRtbCwgdXNlIGBpbnRlcm5hbHMubnVtYmVyT2ZMaXZlTm9kZXNgIHRvIGNoZWNr
IHRoYXQgdGhlIG9iamVjdHMgaW5zaWRlIEpTSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjawor
ICAgICAgICBjYW4gYmUgZ2FyYmFnZSBjb2xsZWN0ZWQuCisKKyAgICAgICAgKiBpbnRlcnNlY3Rp
b24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWFmdGVyLWdjLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2Vj
dGlvbi1vYnNlcnZlci1jYWxsYmFjay1hZnRlci1nYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBp
bnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWst
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50
ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAt
MjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIEdUSyBHU3RyZWFtZXIgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWFm
dGVyLWdjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9p
bnRlcnNlY3Rpb24tb2JzZXJ2ZXItY2FsbGJhY2stYWZ0ZXItZ2MtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVmN2FlNTQ1NjlhN2Q1NTM5ODY3OWFkODkyZjZiZDI4ZTI5MTBiZGQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9u
LW9ic2VydmVyLWNhbGxiYWNrLWFmdGVyLWdjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyB0ZXN0OiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrcyBzdGF5IGFsaXZlIGlm
IGFjY29yZGluZyBvYnNlcnZlcnMgaXMgYWxpdmUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1hZnRl
ci1nYy5odG1sIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlv
bi1vYnNlcnZlci1jYWxsYmFjay1hZnRlci1nYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5OTI1NzliY2Vh
YzhlNDQ4N2ZmYTJlMzU3NzYwMDNmNDdkNzM2NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNr
LWFmdGVyLWdjLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVk
PXRydWUgXSAtLT4KKzxodG1sPgorCis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPGRpdiBp
ZD0iY29udGFpbmVyIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBhc3luYyBmdW5jdGlv
biBjYWxsYmFja1N1cnZpdmVzQWZ0ZXJHQygpIHsKKyAgICAgICAgICAgIGxldCB0ZXN0ID0gYXN5
bmNfdGVzdCgidGVzdDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFja3Mgc3RheSBhbGl2ZSBp
ZiBhY2NvcmRpbmcgb2JzZXJ2ZXJzIGlzIGFsaXZlIik7CisgICAgICAgICAgICBjb25zdCBpdGVy
YXRpb25Db3VudCA9IDEwOworICAgICAgICAgICAgbGV0IGRlbGV0ZWROb2Rlc0NvdW50ID0gMDsK
KyAgICAgICAgICAgIGxldCBjYWxsYmFja0NvdW50QWZ0ZXJEZWxldGUgPSAwOworICAgICAgICAg
ICAgbGV0IG9ic2VydmVycyA9IFtdOworICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwg
aXRlcmF0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICAgICAgZGl2LnN0
YXRlID0gInRvRGVsZXRlIjsKKyAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENo
aWxkKGRpdik7CisgICAgICAgICAgICAgICAgICAgIGxldCBvYnNlcnZlciA9IG5ldyBJbnRlcnNl
Y3Rpb25PYnNlcnZlcihlbnRyaWVzID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgZW50cnkgb2YgZW50cmllcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChlbnRyeS50YXJnZXQuc3RhdGUgPT0gInRvRGVsZXRlIikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWxldGVkTm9kZXNDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoZW50cnkudGFyZ2V0KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkudGFyZ2V0LnN0YXRlID0gImRlbGV0ZWQiOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVsZXRlZE5vZGVzQ291bnQgPT0g
aXRlcmF0aW9uQ291bnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS50YXJn
ZXQuc3RhdGUgPT0gIm5ldyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50
cnkudGFyZ2V0LnN0YXRlID0gImNoZWNrZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYWxsYmFja0NvdW50QWZ0ZXJEZWxldGUrKzsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoY2FsbGJhY2tDb3VudEFmdGVyRGVsZXRlID09IGl0ZXJhdGlvbkNvdW50KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShkaXYpOworICAgICAgICAg
ICAgICAgICAgICBvYnNlcnZlcnNbal0gPSBvYnNlcnZlcjsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGdjKCk7CisgICAgICAgICAgICBmb3IgKGxldCBq
ID0gMDsgaiA8IGl0ZXJhdGlvbkNvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICBjb25zdCBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgICAgICBkaXYu
c3RhdGUgPSAibmV3IjsKKyAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2
KTsKKyAgICAgICAgICAgICAgICBvYnNlcnZlcnNbal0ub2JzZXJ2ZShkaXYpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBjYWxsYmFja1N1cnZpdmVz
QWZ0ZXJHQygpOworICAgIDwvc2NyaXB0PgorCis8L2JvZHk+CisKKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24t
b2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWstZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZl
ci1jYWxsYmFjay1sZWFrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjU3NWUwMmI3YjNmNjA2
MDU2NmUyMjcxOWZkMDRjNGM3YWJjNmE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1sZWFr
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyB0ZXN0OiBOb2RlcyBpbnNpZGUg
Y2FsbGJhY2sgc2hvdWxkIGJlIGdhcmJhZ2UgY29sbGVjdGVkIGlmIG5vIG9uZSByZWZlcnMgdG8g
aXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVy
c2VjdGlvbi1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnRlcnNl
Y3Rpb24tb2JzZXJ2ZXIvaW50ZXJzZWN0aW9uLW9ic2VydmVyLWNhbGxiYWNrLWxlYWsuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xYjYxZmU3YzA5YmJmZjVmOGMxNzU4MDYyM2I2MzQ4ZTE2ZjJkZjUwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL2ludGVyc2Vj
dGlvbi1vYnNlcnZlci1jYWxsYmFjay1sZWFrLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6SW50ZXJzZWN0
aW9uT2JzZXJ2ZXJFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorCis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2djLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKwor
PGJvZHk+CisgICAgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBmdW5jdGlvbiBhY2Nlc3NUb09ic2VydmVySW5DYWxsYmFjaygpIHsKKyAgICAgICAgICAg
IGxldCB0ZXN0ID0gYXN5bmNfdGVzdCgidGVzdDogTm9kZXMgaW5zaWRlIGNhbGxiYWNrIHNob3Vs
ZCBiZSBnYXJiYWdlIGNvbGxlY3RlZCBpZiBubyBvbmUgcmVmZXJzIHRvIGl0Iik7CisgICAgICAg
ICAgICBsZXQgaW5pdGlhbE5vZGVzQ291bnQgPSBpbnRlcm5hbHMubnVtYmVyT2ZMaXZlTm9kZXMo
ZG9jdW1lbnQpOworICAgICAgICAgICAgY29uc3QgaXRlcmF0aW9uQ291bnQgPSA1MDsKKyAgICAg
ICAgICAgIGxldCBjYWxsYmFja0NvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAobGV0IGogPSAw
OyBqIDwgaXRlcmF0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAgIGNvbnRhaW5l
ci5hcHBlbmRDaGlsZChkaXYpOworICAgICAgICAgICAgICAgIGxldCBvYnNlcnZlciA9IG5ldyBJ
bnRlcnNlY3Rpb25PYnNlcnZlcigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNr
Q291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOworICAg
ICAgICAgICAgICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGNhbGxiYWNrQ291bnQgPT0gaXRlcmF0aW9uQ291bnQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdjKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdC5zdGVwKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGFkZGl0aW9uYWxOb2Rlc0NvdW50ID0gaW50ZXJuYWxzLm51bWJlck9mTGl2ZU5vZGVzKGRvY3Vt
ZW50KSAtIGluaXRpYWxOb2Rlc0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShhZGRpdGlvbmFsTm9kZXNDb3VudCA8IGl0ZXJhdGlvbkNvdW50LCAnTm9k
ZXMgaW5zaWRlIGNhbGxiYWNrIHNob3VsZCBiZSBjb2xsZWN0ZWQuJyk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZl
KGRpdik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cub25sb2Fk
ID0gYWNjZXNzVG9PYnNlcnZlckluQ2FsbGJhY2soKTsKKyAgICA8L3NjcmlwdD4KKworPC9ib2R5
PgorCis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>