<?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>233143</bug_id>
          
          <creation_ts>2021-11-15 13:07:42 -0800</creation_ts>
          <short_desc>[JSC] Shadow realms: set correct Function prototype on wrapped functions</short_desc>
          <delta_ts>2021-11-19 11:18:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Griego">joseph.j.griego</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>caitp</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pmates</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815190</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-11-15 13:07:42 -0800</bug_when>
    <thetext>[JSC] Shadow realms: set correct Function prototype on wrapped functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815195</commentid>
    <comment_count>1</comment_count>
      <attachid>444299</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-11-15 13:14:39 -0800</bug_when>
    <thetext>Created attachment 444299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815199</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-11-15 13:21:10 -0800</bug_when>
    <thetext>(NB: in `JSGlobalObject.cpp` i erred on the side of matching surrounding code, but the linter is complaining--not sure what the usual course of action is here)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815462</commentid>
    <comment_count>3</comment_count>
      <attachid>444299</attachid>
    <who name="Phillip Mates">pmates</who>
    <bug_when>2021-11-16 07:09:56 -0800</bug_when>
    <thetext>Comment on attachment 444299
Patch

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

&gt; Source/JavaScriptCore/runtime/ShadowRealmPrototype.cpp:141
&gt; +    wrappedFn-&gt;setPrototype(vm, targetGlobalObj, targetGlobalObj-&gt;strictFunctionStructure(isBuiltin)-&gt;storedPrototype());

Any idea if `setPrototype` plays nice with function inlining optimizations? Might be worth trying to get some coverage for this change in the stress tests (like in JSTests/stress/shadow-realm-evaluate.js where we try to force inlining)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816541</commentid>
    <comment_count>4</comment_count>
      <attachid>444710</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-11-18 11:52:15 -0800</bug_when>
    <thetext>Created attachment 444710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816589</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-11-18 13:15:24 -0800</bug_when>
    <thetext>I am not sure how correct inlining could ruin our day here, but I added some more tests that we&apos;re getting this right to the existing stress tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816614</commentid>
    <comment_count>6</comment_count>
      <attachid>444710</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-18 13:48:04 -0800</bug_when>
    <thetext>Comment on attachment 444710
Patch

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

r=me but probably, eventually, I think we need to use bound function.

&gt; Source/JavaScriptCore/builtins/ShadowRealmPrototype.js:56
&gt; +        if (callerRealm !== null) {
&gt; +            @moveFunctionToRealm(wrapped, callerRealm);
&gt; +        }

WebKit coding style do not use brace if there is only one statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816636</commentid>
    <comment_count>7</comment_count>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2021-11-18 14:36:28 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #6)
&gt; Comment on attachment 444710 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444710&amp;action=review
&gt; 
&gt; r=me but probably, eventually, I think we need to use bound function.

I&apos;m working on a variant using something like JSBoundFunction, it&apos;s in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816637</commentid>
    <comment_count>8</comment_count>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2021-11-18 14:37:47 -0800</bug_when>
    <thetext>(In reply to Caitlin Potter (:caitp) from comment #7)
&gt; (In reply to Yusuke Suzuki from comment #6)
&gt; &gt; Comment on attachment 444710 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=444710&amp;action=review
&gt; &gt; 
&gt; &gt; r=me but probably, eventually, I think we need to use bound function.
&gt; 
&gt; I&apos;m working on a variant using something like JSBoundFunction, it&apos;s in
&gt; progress

However, I think the JS builtin version is fine, and I&apos;d be happy with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816669</commentid>
    <comment_count>9</comment_count>
      <attachid>444748</attachid>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-11-18 15:48:41 -0800</bug_when>
    <thetext>Created attachment 444748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816670</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Griego">joseph.j.griego</who>
    <bug_when>2021-11-18 15:49:33 -0800</bug_when>
    <thetext>After discussing with caitp, we think this version (using a bool instead of swapping realm arguments) is more readable.

Also fixed the tests (which were typo&apos;d) and style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816914</commentid>
    <comment_count>11</comment_count>
      <attachid>444748</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-19 10:36:06 -0800</bug_when>
    <thetext>Comment on attachment 444748
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816940</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-19 11:17:14 -0800</bug_when>
    <thetext>Committed r286069 (244456@main): &lt;https://commits.webkit.org/244456@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444748.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816942</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-19 11:18:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/85612395&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444299</attachid>
            <date>2021-11-15 13:14:39 -0800</date>
            <delta_ts>2021-11-18 11:52:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233143-20211115161438.patch</filename>
            <type>text/plain</type>
            <size>11935</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MTM1NWUwY2NjYjcyYWRjZTAyYjc0YTAxMzZjOGMwZjIwZTEyNjIzLi5hZmVkOTZjNDUxYTRiNWZm
ZDA2MTc3NzljOGZhZDRmOWNmMzk1ODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAyMS0xMS0xNSAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbSlNDXSBTaGFkb3cgcmVhbG1zOiBzZXQgY29ycmVjdCBGdW5jdGlvbiBw
cm90b3R5cGUgb24gd3JhcHBlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEF0IHByZXNlbnQsIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUg
c2V0IG9uIGVhY2ggb2YgdGhlIHJldHVybmVkIHdyYXBwZWQKKyAgICAgICAgZnVuY3Rpb25zIHdp
bGwgYmUgdGhlIEZ1bmN0aW9uIG9iamVjdCBmcm9tIHRoZSByZWFsbSB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJ1aWx0aW4gaXMgZnJvbS0tdG8gY29tcGx5IHdpdGggdGhlIGxhdGVzdCBkcmFm
dCBvZiB0aGUgc2hhZG93IHJlYWxtcworICAgICAgICBzcGVjIFsxXSwgd3JhcHBlZCBmdW5jdGlv
biBvYmplY3RzIHNob3VsZCBoYXZlIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUKKyAgICAgICAgZnJv
bSB0aGUgcmVhbG0gdGhlIHdyYXBwZXIgb2JqZWN0IGlzIGRlc3RpbmVkIGZvciwgaW5zdGVhZC4K
KworICAgICAgICBBdCBwcmVzZW50LCB0aGlzIHJlcXVpcmVzIHRyYWNraW5nIGJvdGggdGhlIGNh
bGxpbmcgKGRlc3RpbmF0aW9uKSBhbmQKKyAgICAgICAgdGFyZ2V0IChzb3VyY2UpIHJlYWxtIGFu
ZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgdHdvIGFzIGZ1bmN0aW9uCisgICAgICAgIGFyZ3VtZW50
cyBhcmUgd3JhcHBlZCAod2hlbiB0aGUgbm90aW9uIG9mIHNvdXJjZSBhbmQgZGVzdGluYXRpb24g
cmVhbG0KKyAgICAgICAgYWxzbyBmbGlwcykKKworICAgICAgICBBZGRzIGEgc2ltcGxlIGJ1aWx0
aW4gKG1vdmVGdW5jdGlvblRvUmVhbG0pIHRoYXQgY2FuIHN3aXRjaCB0aGUgRnVuY3Rpb24KKyAg
ICAgICAgcHJvdG90eXBlIGdpdmVuIG9ubHkgdGhlIFNoYWRvdyBSZWFsbSBvYmplY3QgY29ycmVz
cG9uZGluZyB0byB0aGUKKyAgICAgICAgY29ycmVjdCBnbG9iYWwgb2JqZWN0LgorCisgICAgICAg
IEFsc28gbWFya3MgdGhlIGNvcnJlc3BvbmRpbmcgcGFydCBvZiB0ZXN0MjYyIGFzIHBhc3Npbmcu
CisKKyAgICAgICAgWzFdIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1zaGFkb3dyZWFsbS8gc2Vj
dGlvbnMgMi4xLCAyLjIKKworCisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoK
KyAgICAgICAgKiBidWlsdGlucy9TaGFkb3dSZWFsbVByb3RvdHlwZS5qczoKKyAgICAgICAgKHdy
YXBwZWQpOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS53cmFwKToKKyAgICAgICAgKGV2YWx1YXRl
KToKKyAgICAgICAgKGltcG9ydFZhbHVlKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUud3JhcC53
cmFwcGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9MaW5rVGltZUNvbnN0YW50Lmg6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKiBydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmg6CisKIDIwMjEtMTEtMTQgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2UgQ2FsbExp
bmtJbmZvIGluIExMSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmgKaW5kZXggY2VkMzBhOGVhOGY3MWY3YTAyYTYyZWI0MmI1ZTE1NzY2Mjg5ZGEzNC4u
NTY4ZGExOWM4NjU3M2I4ZjdmMzBlODhkM2RmOGUwMTZiODE4OTMwNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMTE4LDYgKzExOCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKHRoaXMpIFwKICAgICBtYWNybyhpbXBvcnRJblJl
YWxtKSBcCiAgICAgbWFjcm8oZXZhbEluUmVhbG0pIFwKKyAgICBtYWNybyhtb3ZlRnVuY3Rpb25U
b1JlYWxtKSBcCiAgICAgbWFjcm8odGhpc1RpbWVWYWx1ZSkgXAogICAgIG1hY3JvKG5ld1Rhcmdl
dExvY2FsKSBcCiAgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU2hhZG93UmVhbG1Qcm90b3R5cGUuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU2hhZG93UmVhbG1Qcm90b3R5cGUuanMKaW5k
ZXggMGMwMDM1OTdlZjYwODM0Y2EwYjdhZTAwMGMwM2Y1MmE4NGRlZjRhNi4uZGM1MjQ4NmU3OTNl
ZjZlYTZjOTQ2MTYxYjJlNWZhOWE1ZmNiY2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1NoYWRvd1JlYWxtUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9TaGFkb3dSZWFsbVByb3RvdHlwZS5qcwpAQCAtMjMsOCArMjMs
MTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBXcmFw
IGEgdmFsdWUgZnJvbSBgdGFyZ2V0UmVhbG1gIGZvciB1c2UgaW4gYGNhbGxlclJlYWxtYDsgZWl0
aGVyIHJlYWxtIGNhbiBiZQorLy8gYG51bGxgIHdoaWNoIGRlbm90ZXMgdGhlIGluY3ViYXRpbmcg
cmVhbG0gKHdoaWNoIG1pZ2h0IGJlIHRoZSB0b3AtbGV2ZWwgYW5kCisvLyB0aGVyZWZvcmUgaGFz
IG5vIGNvbnZlbmllbnQgcmVhbG0gb2JqZWN0IGluIGdlbmVyYWwgOikKIEBnbG9iYWxQcml2YXRl
Ci1mdW5jdGlvbiB3cmFwKHRhcmdldCkKK2Z1bmN0aW9uIHdyYXAoY2FsbGVyUmVhbG0sIHRhcmdl
dFJlYWxtLCB0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCkBAIC0zMywxMyArMzYsMjQg
QEAgZnVuY3Rpb24gd3JhcCh0YXJnZXQpCiAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1l
bnRzLmxlbmd0aDsKICAgICAgICAgICAgIHZhciB3cmFwcGVkQXJncyA9IEBuZXdBcnJheVdpdGhT
aXplKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgbGVu
Z3RoOyArK2luZGV4KQotICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdCh3cmFwcGVkQXJn
cywgaW5kZXgsIEB3cmFwKGFyZ3VtZW50c1tpbmRleF0pKTsKKyAgICAgICAgICAgICAgICAvLyBO
b3RlIHRoYXQgZm9yIGFyZ3VtZW50cywgd2UgZmxpcCB0aGUgc291cmNlIGFuZCBkZXN0IHJlYWxt
CisgICAgICAgICAgICAgICAgLy8gc2luY2UgdG8gd3JhcCBhIGZ1bmN0aW9uIGZyb20gcmVhbG0g
QSB0byB3b3JrIGluIHJlYWxtIEIsIHdlCisgICAgICAgICAgICAgICAgLy8gbmVlZCB0byB3cmFw
IHRoZSBhcmd1bWVudHMgKGZyb20gcmVhbG0gQikgdG8gd29yayBpbiByZWFsbSBBCisgICAgICAg
ICAgICAgICAgLy8gYmVmb3JlIGNhbGxpbmcgdGhlIHdyYXBwZWQgZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICBAcHV0QnlWYWxEaXJlY3Qod3JhcHBlZEFyZ3MsIGluZGV4LCBAd3JhcCh0YXJnZXRS
ZWFsbSwgY2FsbGVyUmVhbG0sIGFyZ3VtZW50c1tpbmRleF0pKTsKIAogICAgICAgICAgICAgdmFy
IHJlc3VsdCA9IHRhcmdldC5AYXBwbHkoQHVuZGVmaW5lZCwgd3JhcHBlZEFyZ3MpOwotICAgICAg
ICAgICAgcmV0dXJuIEB3cmFwKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gQHdyYXAoY2Fs
bGVyUmVhbG0sIHRhcmdldFJlYWxtLCByZXN1bHQpOwogICAgICAgICB9OwogICAgICAgICBkZWxl
dGUgd3JhcHBlZFsnbmFtZSddOwogICAgICAgICBkZWxldGUgd3JhcHBlZFsnbGVuZ3RoJ107CisK
KyAgICAgICAgLy8gQmVjYXVzZSB0aGlzIGZ1bmN0aW9uICh3cmFwKSB3aWxsIHJ1biB3aXRoIHRo
ZSBpbmN1YmF0aW5nIHJlYWxtCisgICAgICAgIC8vIGFjdGl2ZSwgd2Ugb25seSBuZWVkIHRvIGZp
eCB0aGUgcHJvdG90eXBlIG9uIGB3cmFwcGVkYCBpZiB0aGUKKyAgICAgICAgLy8gcmVxdWVzdGVk
IHJlYWxtIGlzIG5vdCBudWxsICh3aGljaCBkZW5vdGVzIHRoZSBpbmN1YmF0aW5nIHJlYWxtKQor
ICAgICAgICBpZiAoY2FsbGVyUmVhbG0gIT09IG51bGwpIHsKKyAgICAgICAgICAgIEBtb3ZlRnVu
Y3Rpb25Ub1JlYWxtKHdyYXBwZWQsIGNhbGxlclJlYWxtKTsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gd3JhcHBlZDsKICAgICB9IGVsc2UgaWYgKEBpc09iamVjdCh0YXJnZXQpKSB7CiAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigidmFsdWUgcGFzc2luZyBiZXR3ZWVuIHJlYWxtcyBtdXN0IGJl
IGNhbGxhYmxlIG9yIHByaW1pdGl2ZSIpOwpAQCAtNTgsNyArNzIsNyBAQCBmdW5jdGlvbiBldmFs
dWF0ZShzb3VyY2VUZXh0KQogICAgICAgICBAdGhyb3dUeXBlRXJyb3IoImAlU2hhZG93UmVhbG0l
LmV2YWx1YXRlIHJlcXVpcmVzIHRoYXQgdGhlIHxzb3VyY2VUZXh0fCBhcmd1bWVudCBiZSBhIHN0
cmluZyIpOwogCiAgICAgdmFyIHJlc3VsdCA9IEBldmFsSW5SZWFsbSh0aGlzLCBzb3VyY2VUZXh0
KQotICAgIHJldHVybiBAd3JhcChyZXN1bHQpOworICAgIHJldHVybiBAd3JhcChudWxsLCB0aGlz
LCByZXN1bHQpOwogfQogCiBmdW5jdGlvbiBpbXBvcnRWYWx1ZShzcGVjaWZpZXIsIGV4cG9ydE5h
bWUpCkBAIC03Niw3ICs5MCw3IEBAIGZ1bmN0aW9uIGltcG9ydFZhbHVlKHNwZWNpZmllciwgZXhw
b3J0TmFtZSkKICAgICAgICAgaWYgKGxvb2t1cCA9PT0gQHVuZGVmaW5lZCkKICAgICAgICAgICAg
IEB0aHJvd1R5cGVFcnJvcigiJVNoYWRvd1JlYWxtJS5pbXBvcnRWYWx1ZSByZXF1aXJlcyB8ZXhw
b3J0TmFtZXwgdG8gZXhpc3QgaW4gdGhlIHxzcGVjaWZpZXJ8Iik7CiAKLSAgICAgICAgcmV0dXJu
IEB3cmFwKGxvb2t1cCk7CisgICAgICAgIHJldHVybiBAd3JhcChudWxsLCB0aGlzLCBsb29rdXAp
OwogICAgIH07CiAKICAgICB2YXIgY3Jvc3NSZWFsbVRocm93ID0gKGVycm9yKSA9PiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaAppbmRl
eCAxZTUyMzhkZGYyZGJkMDY2YmUyNmZhMjBhZmUzN2M5Yjc0ZTBmZjhhLi41N2E5MGVjMGZhY2Mx
MmRkY2Q5YWJmNGFjMmYyZGNiYWIwZTBmYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKQEAgLTgwLDYgKzgwLDcgQEAgY2xhc3Mg
SlNHbG9iYWxPYmplY3Q7CiAgICAgdih0aGlzVGltZVZhbHVlLCBudWxscHRyKSBcCiAgICAgdihp
bXBvcnRJblJlYWxtLCBudWxscHRyKSBcCiAgICAgdihldmFsSW5SZWFsbSwgbnVsbHB0cikgXAor
ICAgIHYobW92ZUZ1bmN0aW9uVG9SZWFsbSwgbnVsbHB0cikgXAogICAgIHYoaXNDb25zdHJ1Y3Rv
ciwgbnVsbHB0cikgXAogICAgIHYoc2FtZVZhbHVlLCBudWxscHRyKSBcCiAgICAgdihyZWdFeHBQ
cm90b0ZsYWdzR2V0dGVyLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMmE0Y2YyZTI3ODdmNDdmZWYyMjAwNjc2
MDRiNDMzODU5YjdkODkwZC4uY2ZmNDdiMDUxMDc5NzZjYWRmNDgxNDc1NDIzZTg2ZWY4MTU4NmM1
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcApAQCAtMTQ2MCw2ICsxNDYwLDkgQEAgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3IqIGxv
d2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGZlYXR1cmVGbGFnID8gY2FwaXRhbE5hbWUKICAgICBt
X2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50
OjpldmFsSW5SZWFsbSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYg
aW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0s
IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgZXZhbElu
UmVhbG0pKTsKICAgICAgICAgfSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6bW92ZUZ1bmN0aW9uVG9SZWFsbSldLmluaXRM
YXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgeworICAgICAgICAgICAg
aW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVj
dCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgbW92ZUZ1bmN0aW9uVG9SZWFsbSkpOworICAg
ICAgICB9KTsKICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihM
aW5rVGltZUNvbnN0YW50Ojp0aGlzVGltZVZhbHVlKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0
aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9u
OjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAs
IFN0cmluZygpLCBkYXRlUHJvdG9GdW5jR2V0VGltZSwgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRy
aW5zaWMpKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5jcHAKaW5kZXggY2JmNjEzMjBhN2RiNGYwNzJm
YWI5M2ExYWY0YjAyYWY4ZTE5ZWMxYS4uMDQzOGRiNGFjYjljNTQyZmY3YjgzNzk4NTE5M2YxMTY3
MTY0MzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93
UmVhbG1Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtUHJvdG90eXBlLmNwcApAQCAtMTI0LDQgKzEyNCwyMiBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZXZhbEluUmVhbG0sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb3ZlRnVuY3Rpb25Ub1Jl
YWxtLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1ZhbHVlIHdyYXBwZWRGbkFyZyA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgSlNGdW5jdGlvbiogd3JhcHBlZEZuID0ganNEeW5h
bWljQ2FzdDxKU0Z1bmN0aW9uKj4odm0sIHdyYXBwZWRGbkFyZyk7CisgICAgSlNWYWx1ZSB0YXJn
ZXRSZWFsbUFyZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CisgICAgU2hhZG93UmVhbG1PYmpl
Y3QqIHRhcmdldFJlYWxtID0ganNEeW5hbWljQ2FzdDxTaGFkb3dSZWFsbU9iamVjdCo+KHZtLCB0
YXJnZXRSZWFsbUFyZyk7CisgICAgQVNTRVJUKHRhcmdldFJlYWxtKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgYm9vbCBpc0J1aWx0aW4gPSBmYWxzZTsKKyAg
ICBKU0dsb2JhbE9iamVjdCogdGFyZ2V0R2xvYmFsT2JqID0gdGFyZ2V0UmVhbG0tPmdsb2JhbE9i
amVjdCgpOworICAgIHdyYXBwZWRGbi0+c2V0UHJvdG90eXBlKHZtLCB0YXJnZXRHbG9iYWxPYmos
IHRhcmdldEdsb2JhbE9iai0+c3RyaWN0RnVuY3Rpb25TdHJ1Y3R1cmUoaXNCdWlsdGluKS0+c3Rv
cmVkUHJvdG90eXBlKCkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Qcm90b3R5cGUuaApp
bmRleCAxNDFlMjZiZTYxMDBkYmQ0ZmY1OTllYWM0Y2RmMzc4MWYzZGNjNzkzLi44YzM0MGFkNzNh
NTliOWJiYTg4NjU4YTJhZWNmYjY5ODkzNzc3ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmgKQEAgLTYzLDUgKzYzLDYg
QEAgcHJpdmF0ZToKIAogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihpbXBvcnRJblJlYWxtKTsK
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZXZhbEluUmVhbG0pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihtb3ZlRnVuY3Rpb25Ub1JlYWxtKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUz
NTYyZDQ4YWYxNjJkMTUyYjU4NTNkOTg3OWVlYmNlMDIwYzYxMDcuLjk2NGU0YjIyZjcwMjMyYjMw
NGIzNTE0NTUwMzhhZjA4OWZhMjRiZDcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMTEtMTUgIEpvc2Vw
aCBHcmllZ28gIDxqZ3JpZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0pTQ10gU2hhZG93IHJl
YWxtczogc2V0IGNvcnJlY3QgRnVuY3Rpb24gcHJvdG90eXBlIG9uIHdyYXBwZWQgZnVuY3Rpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdCBwcmVz
ZW50LCB0aGUgRnVuY3Rpb24gcHJvdG90eXBlIHNldCBvbiBlYWNoIG9mIHRoZSByZXR1cm5lZCB3
cmFwcGVkCisgICAgICAgIGZ1bmN0aW9ucyB3aWxsIGJlIHRoZSBGdW5jdGlvbiBvYmplY3QgZnJv
bSB0aGUgcmVhbG0gdGhlIHNoYWRvdyByZWFsbQorICAgICAgICBidWlsdGluIGlzIGZyb20tLXRv
IGNvbXBseSB3aXRoIHRoZSBsYXRlc3QgZHJhZnQgb2YgdGhlIHNoYWRvdyByZWFsbXMKKyAgICAg
ICAgc3BlYyBbMV0sIHdyYXBwZWQgZnVuY3Rpb24gb2JqZWN0cyBzaG91bGQgaGF2ZSB0aGUgRnVu
Y3Rpb24gcHJvdG90eXBlCisgICAgICAgIGZyb20gdGhlIHJlYWxtIHRoZSB3cmFwcGVyIG9iamVj
dCBpcyBkZXN0aW5lZCBmb3IsIGluc3RlYWQuCisKKyAgICAgICAgQXQgcHJlc2VudCwgdGhpcyBy
ZXF1aXJlcyB0cmFja2luZyBib3RoIHRoZSBjYWxsaW5nIChkZXN0aW5hdGlvbikgYW5kCisgICAg
ICAgIHRhcmdldCAoc291cmNlKSByZWFsbSBhbmQgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHR3byBh
cyBmdW5jdGlvbgorICAgICAgICBhcmd1bWVudHMgYXJlIHdyYXBwZWQgKHdoZW4gdGhlIG5vdGlv
biBvZiBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHJlYWxtCisgICAgICAgIGFsc28gZmxpcHMpCisK
KyAgICAgICAgQWRkcyBhIHNpbXBsZSBidWlsdGluIChtb3ZlRnVuY3Rpb25Ub1JlYWxtKSB0aGF0
IGNhbiBzd2l0Y2ggdGhlIEZ1bmN0aW9uCisgICAgICAgIHByb3RvdHlwZSBnaXZlbiBvbmx5IHRo
ZSBTaGFkb3cgUmVhbG0gb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICAgIGNvcnJl
Y3QgZ2xvYmFsIG9iamVjdC4KKworICAgICAgICBBbHNvIG1hcmtzIHRoZSBjb3JyZXNwb25kaW5n
IHBhcnQgb2YgdGVzdDI2MiBhcyBwYXNzaW5nLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3Rh
dGlvbnMueWFtbDoKKwogMjAyMS0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIFVzZSBDYWxsTGlua0luZm8gaW4gTExJbnQKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbAppbmRleCBlNmU1N2NjOGZmOWMxODU3MzU2YTE3MTQ0MmZhNWYyZDgx
NmM0NDgwLi41ZjJjOTI1NjEwNWVhZTlhZWZkNTRhYzE4MzBkMjU0MDVmZGExOTNhIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xMTM3LDkgKzExMzcsNiBAQCB0ZXN0L2J1aWx0LWlu
cy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvdS1sYXN0aW5kZXgtYWR2LmpzOgogdGVzdC9idWlsdC1p
bnMvUmVnRXhwL3F1YW50aWZpZXItaW50ZWdlci1saW1pdC5qczoKICAgZGVmYXVsdDogJ1N5bnRh
eEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7
fSBxdWFudGlmaWVyJwogICBzdHJpY3QgbW9kZTogJ1N5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3Vs
YXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVyJwotdGVzdC9i
dWlsdC1pbnMvU2hhZG93UmVhbG0vcHJvdG90eXBlL2V2YWx1YXRlL3dyYXBwZWQtZnVuY3Rpb24t
cHJvdG8tZnJvbS1jYWxsZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGNh
bGxhYmxlIGFyZ3VtZW50cyBwYXNzZWQgaW50byBXcmFwcGVkRnVuY3Rpb24gc2hvdWxkIGJlIHdy
YXBwZWQgaW4gdGFyZ2V0IHJlYWxtIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2ZhbHNlwrssIMKrdHJ1
ZcK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogY2FsbGFibGUg
YXJndW1lbnRzIHBhc3NlZCBpbnRvIFdyYXBwZWRGdW5jdGlvbiBzaG91bGQgYmUgd3JhcHBlZCBp
biB0YXJnZXQgcmVhbG0gRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywgwqt0cnVlwrspIHRv
IGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlucy9UZW1wb3JhbC9JbnN0YW50L3Byb3RvdHlwZS90b1N0
cmluZy90aW1lem9uZS1vZmZzZXQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IG9mZnNl
dCBvZiBVVEMgaXMgKzAwOjAwIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzE5NzAtMDEtMDFUMDA6MDA6
MDBawrssIMKrMTk3MC0wMS0wMVQwMDowMDowMCswMDowMMK7KSB0byBiZSB0cnVlJwogICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogb2Zmc2V0IG9mIFVUQyBpcyArMDA6MDAgRXhwZWN0ZWQg
U2FtZVZhbHVlKMKrMTk3MC0wMS0wMVQwMDowMDowMFrCuywgwqsxOTcwLTAxLTAxVDAwOjAwOjAw
KzAwOjAwwrspIHRvIGJlIHRydWUnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444710</attachid>
            <date>2021-11-18 11:52:15 -0800</date>
            <delta_ts>2021-11-18 15:48:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233143-20211118145214.patch</filename>
            <type>text/plain</type>
            <size>14028</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MTM1NWUwY2NjYjcyYWRjZTAyYjc0YTAxMzZjOGMwZjIwZTEyNjIzLi5hZmVkOTZjNDUxYTRiNWZm
ZDA2MTc3NzljOGZhZDRmOWNmMzk1ODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAyMS0xMS0xNSAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbSlNDXSBTaGFkb3cgcmVhbG1zOiBzZXQgY29ycmVjdCBGdW5jdGlvbiBw
cm90b3R5cGUgb24gd3JhcHBlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEF0IHByZXNlbnQsIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUg
c2V0IG9uIGVhY2ggb2YgdGhlIHJldHVybmVkIHdyYXBwZWQKKyAgICAgICAgZnVuY3Rpb25zIHdp
bGwgYmUgdGhlIEZ1bmN0aW9uIG9iamVjdCBmcm9tIHRoZSByZWFsbSB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJ1aWx0aW4gaXMgZnJvbS0tdG8gY29tcGx5IHdpdGggdGhlIGxhdGVzdCBkcmFm
dCBvZiB0aGUgc2hhZG93IHJlYWxtcworICAgICAgICBzcGVjIFsxXSwgd3JhcHBlZCBmdW5jdGlv
biBvYmplY3RzIHNob3VsZCBoYXZlIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUKKyAgICAgICAgZnJv
bSB0aGUgcmVhbG0gdGhlIHdyYXBwZXIgb2JqZWN0IGlzIGRlc3RpbmVkIGZvciwgaW5zdGVhZC4K
KworICAgICAgICBBdCBwcmVzZW50LCB0aGlzIHJlcXVpcmVzIHRyYWNraW5nIGJvdGggdGhlIGNh
bGxpbmcgKGRlc3RpbmF0aW9uKSBhbmQKKyAgICAgICAgdGFyZ2V0IChzb3VyY2UpIHJlYWxtIGFu
ZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgdHdvIGFzIGZ1bmN0aW9uCisgICAgICAgIGFyZ3VtZW50
cyBhcmUgd3JhcHBlZCAod2hlbiB0aGUgbm90aW9uIG9mIHNvdXJjZSBhbmQgZGVzdGluYXRpb24g
cmVhbG0KKyAgICAgICAgYWxzbyBmbGlwcykKKworICAgICAgICBBZGRzIGEgc2ltcGxlIGJ1aWx0
aW4gKG1vdmVGdW5jdGlvblRvUmVhbG0pIHRoYXQgY2FuIHN3aXRjaCB0aGUgRnVuY3Rpb24KKyAg
ICAgICAgcHJvdG90eXBlIGdpdmVuIG9ubHkgdGhlIFNoYWRvdyBSZWFsbSBvYmplY3QgY29ycmVz
cG9uZGluZyB0byB0aGUKKyAgICAgICAgY29ycmVjdCBnbG9iYWwgb2JqZWN0LgorCisgICAgICAg
IEFsc28gbWFya3MgdGhlIGNvcnJlc3BvbmRpbmcgcGFydCBvZiB0ZXN0MjYyIGFzIHBhc3Npbmcu
CisKKyAgICAgICAgWzFdIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1zaGFkb3dyZWFsbS8gc2Vj
dGlvbnMgMi4xLCAyLjIKKworCisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoK
KyAgICAgICAgKiBidWlsdGlucy9TaGFkb3dSZWFsbVByb3RvdHlwZS5qczoKKyAgICAgICAgKHdy
YXBwZWQpOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS53cmFwKToKKyAgICAgICAgKGV2YWx1YXRl
KToKKyAgICAgICAgKGltcG9ydFZhbHVlKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUud3JhcC53
cmFwcGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9MaW5rVGltZUNvbnN0YW50Lmg6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKiBydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmg6CisKIDIwMjEtMTEtMTQgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2UgQ2FsbExp
bmtJbmZvIGluIExMSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmgKaW5kZXggY2VkMzBhOGVhOGY3MWY3YTAyYTYyZWI0MmI1ZTE1NzY2Mjg5ZGEzNC4u
NTY4ZGExOWM4NjU3M2I4ZjdmMzBlODhkM2RmOGUwMTZiODE4OTMwNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMTE4LDYgKzExOCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKHRoaXMpIFwKICAgICBtYWNybyhpbXBvcnRJblJl
YWxtKSBcCiAgICAgbWFjcm8oZXZhbEluUmVhbG0pIFwKKyAgICBtYWNybyhtb3ZlRnVuY3Rpb25U
b1JlYWxtKSBcCiAgICAgbWFjcm8odGhpc1RpbWVWYWx1ZSkgXAogICAgIG1hY3JvKG5ld1Rhcmdl
dExvY2FsKSBcCiAgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU2hhZG93UmVhbG1Qcm90b3R5cGUuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU2hhZG93UmVhbG1Qcm90b3R5cGUuanMKaW5k
ZXggMGMwMDM1OTdlZjYwODM0Y2EwYjdhZTAwMGMwM2Y1MmE4NGRlZjRhNi4uZGM1MjQ4NmU3OTNl
ZjZlYTZjOTQ2MTYxYjJlNWZhOWE1ZmNiY2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1NoYWRvd1JlYWxtUHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9TaGFkb3dSZWFsbVByb3RvdHlwZS5qcwpAQCAtMjMsOCArMjMs
MTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBXcmFw
IGEgdmFsdWUgZnJvbSBgdGFyZ2V0UmVhbG1gIGZvciB1c2UgaW4gYGNhbGxlclJlYWxtYDsgZWl0
aGVyIHJlYWxtIGNhbiBiZQorLy8gYG51bGxgIHdoaWNoIGRlbm90ZXMgdGhlIGluY3ViYXRpbmcg
cmVhbG0gKHdoaWNoIG1pZ2h0IGJlIHRoZSB0b3AtbGV2ZWwgYW5kCisvLyB0aGVyZWZvcmUgaGFz
IG5vIGNvbnZlbmllbnQgcmVhbG0gb2JqZWN0IGluIGdlbmVyYWwgOikKIEBnbG9iYWxQcml2YXRl
Ci1mdW5jdGlvbiB3cmFwKHRhcmdldCkKK2Z1bmN0aW9uIHdyYXAoY2FsbGVyUmVhbG0sIHRhcmdl
dFJlYWxtLCB0YXJnZXQpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCkBAIC0zMywxMyArMzYsMjQg
QEAgZnVuY3Rpb24gd3JhcCh0YXJnZXQpCiAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1l
bnRzLmxlbmd0aDsKICAgICAgICAgICAgIHZhciB3cmFwcGVkQXJncyA9IEBuZXdBcnJheVdpdGhT
aXplKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgbGVu
Z3RoOyArK2luZGV4KQotICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdCh3cmFwcGVkQXJn
cywgaW5kZXgsIEB3cmFwKGFyZ3VtZW50c1tpbmRleF0pKTsKKyAgICAgICAgICAgICAgICAvLyBO
b3RlIHRoYXQgZm9yIGFyZ3VtZW50cywgd2UgZmxpcCB0aGUgc291cmNlIGFuZCBkZXN0IHJlYWxt
CisgICAgICAgICAgICAgICAgLy8gc2luY2UgdG8gd3JhcCBhIGZ1bmN0aW9uIGZyb20gcmVhbG0g
QSB0byB3b3JrIGluIHJlYWxtIEIsIHdlCisgICAgICAgICAgICAgICAgLy8gbmVlZCB0byB3cmFw
IHRoZSBhcmd1bWVudHMgKGZyb20gcmVhbG0gQikgdG8gd29yayBpbiByZWFsbSBBCisgICAgICAg
ICAgICAgICAgLy8gYmVmb3JlIGNhbGxpbmcgdGhlIHdyYXBwZWQgZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICBAcHV0QnlWYWxEaXJlY3Qod3JhcHBlZEFyZ3MsIGluZGV4LCBAd3JhcCh0YXJnZXRS
ZWFsbSwgY2FsbGVyUmVhbG0sIGFyZ3VtZW50c1tpbmRleF0pKTsKIAogICAgICAgICAgICAgdmFy
IHJlc3VsdCA9IHRhcmdldC5AYXBwbHkoQHVuZGVmaW5lZCwgd3JhcHBlZEFyZ3MpOwotICAgICAg
ICAgICAgcmV0dXJuIEB3cmFwKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gQHdyYXAoY2Fs
bGVyUmVhbG0sIHRhcmdldFJlYWxtLCByZXN1bHQpOwogICAgICAgICB9OwogICAgICAgICBkZWxl
dGUgd3JhcHBlZFsnbmFtZSddOwogICAgICAgICBkZWxldGUgd3JhcHBlZFsnbGVuZ3RoJ107CisK
KyAgICAgICAgLy8gQmVjYXVzZSB0aGlzIGZ1bmN0aW9uICh3cmFwKSB3aWxsIHJ1biB3aXRoIHRo
ZSBpbmN1YmF0aW5nIHJlYWxtCisgICAgICAgIC8vIGFjdGl2ZSwgd2Ugb25seSBuZWVkIHRvIGZp
eCB0aGUgcHJvdG90eXBlIG9uIGB3cmFwcGVkYCBpZiB0aGUKKyAgICAgICAgLy8gcmVxdWVzdGVk
IHJlYWxtIGlzIG5vdCBudWxsICh3aGljaCBkZW5vdGVzIHRoZSBpbmN1YmF0aW5nIHJlYWxtKQor
ICAgICAgICBpZiAoY2FsbGVyUmVhbG0gIT09IG51bGwpIHsKKyAgICAgICAgICAgIEBtb3ZlRnVu
Y3Rpb25Ub1JlYWxtKHdyYXBwZWQsIGNhbGxlclJlYWxtKTsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gd3JhcHBlZDsKICAgICB9IGVsc2UgaWYgKEBpc09iamVjdCh0YXJnZXQpKSB7CiAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigidmFsdWUgcGFzc2luZyBiZXR3ZWVuIHJlYWxtcyBtdXN0IGJl
IGNhbGxhYmxlIG9yIHByaW1pdGl2ZSIpOwpAQCAtNTgsNyArNzIsNyBAQCBmdW5jdGlvbiBldmFs
dWF0ZShzb3VyY2VUZXh0KQogICAgICAgICBAdGhyb3dUeXBlRXJyb3IoImAlU2hhZG93UmVhbG0l
LmV2YWx1YXRlIHJlcXVpcmVzIHRoYXQgdGhlIHxzb3VyY2VUZXh0fCBhcmd1bWVudCBiZSBhIHN0
cmluZyIpOwogCiAgICAgdmFyIHJlc3VsdCA9IEBldmFsSW5SZWFsbSh0aGlzLCBzb3VyY2VUZXh0
KQotICAgIHJldHVybiBAd3JhcChyZXN1bHQpOworICAgIHJldHVybiBAd3JhcChudWxsLCB0aGlz
LCByZXN1bHQpOwogfQogCiBmdW5jdGlvbiBpbXBvcnRWYWx1ZShzcGVjaWZpZXIsIGV4cG9ydE5h
bWUpCkBAIC03Niw3ICs5MCw3IEBAIGZ1bmN0aW9uIGltcG9ydFZhbHVlKHNwZWNpZmllciwgZXhw
b3J0TmFtZSkKICAgICAgICAgaWYgKGxvb2t1cCA9PT0gQHVuZGVmaW5lZCkKICAgICAgICAgICAg
IEB0aHJvd1R5cGVFcnJvcigiJVNoYWRvd1JlYWxtJS5pbXBvcnRWYWx1ZSByZXF1aXJlcyB8ZXhw
b3J0TmFtZXwgdG8gZXhpc3QgaW4gdGhlIHxzcGVjaWZpZXJ8Iik7CiAKLSAgICAgICAgcmV0dXJu
IEB3cmFwKGxvb2t1cCk7CisgICAgICAgIHJldHVybiBAd3JhcChudWxsLCB0aGlzLCBsb29rdXAp
OwogICAgIH07CiAKICAgICB2YXIgY3Jvc3NSZWFsbVRocm93ID0gKGVycm9yKSA9PiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaAppbmRl
eCAxZTUyMzhkZGYyZGJkMDY2YmUyNmZhMjBhZmUzN2M5Yjc0ZTBmZjhhLi41N2E5MGVjMGZhY2Mx
MmRkY2Q5YWJmNGFjMmYyZGNiYWIwZTBmYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKQEAgLTgwLDYgKzgwLDcgQEAgY2xhc3Mg
SlNHbG9iYWxPYmplY3Q7CiAgICAgdih0aGlzVGltZVZhbHVlLCBudWxscHRyKSBcCiAgICAgdihp
bXBvcnRJblJlYWxtLCBudWxscHRyKSBcCiAgICAgdihldmFsSW5SZWFsbSwgbnVsbHB0cikgXAor
ICAgIHYobW92ZUZ1bmN0aW9uVG9SZWFsbSwgbnVsbHB0cikgXAogICAgIHYoaXNDb25zdHJ1Y3Rv
ciwgbnVsbHB0cikgXAogICAgIHYoc2FtZVZhbHVlLCBudWxscHRyKSBcCiAgICAgdihyZWdFeHBQ
cm90b0ZsYWdzR2V0dGVyLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMmE0Y2YyZTI3ODdmNDdmZWYyMjAwNjc2
MDRiNDMzODU5YjdkODkwZC4uY2ZmNDdiMDUxMDc5NzZjYWRmNDgxNDc1NDIzZTg2ZWY4MTU4NmM1
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcApAQCAtMTQ2MCw2ICsxNDYwLDkgQEAgY2FwaXRhbE5hbWUgIyMgQ29uc3RydWN0b3IqIGxv
d2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGZlYXR1cmVGbGFnID8gY2FwaXRhbE5hbWUKICAgICBt
X2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50
OjpldmFsSW5SZWFsbSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYg
aW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0s
IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgZXZhbElu
UmVhbG0pKTsKICAgICAgICAgfSk7CisgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6bW92ZUZ1bmN0aW9uVG9SZWFsbSldLmluaXRM
YXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgeworICAgICAgICAgICAg
aW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVj
dCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgbW92ZUZ1bmN0aW9uVG9SZWFsbSkpOworICAg
ICAgICB9KTsKICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihM
aW5rVGltZUNvbnN0YW50Ojp0aGlzVGltZVZhbHVlKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0
aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9u
OjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAs
IFN0cmluZygpLCBkYXRlUHJvdG9GdW5jR2V0VGltZSwgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRy
aW5zaWMpKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5jcHAKaW5kZXggY2JmNjEzMjBhN2RiNGYwNzJm
YWI5M2ExYWY0YjAyYWY4ZTE5ZWMxYS4uMDQzOGRiNGFjYjljNTQyZmY3YjgzNzk4NTE5M2YxMTY3
MTY0MzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93
UmVhbG1Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1No
YWRvd1JlYWxtUHJvdG90eXBlLmNwcApAQCAtMTI0LDQgKzEyNCwyMiBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZXZhbEluUmVhbG0sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb3ZlRnVuY3Rpb25Ub1Jl
YWxtLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1ZhbHVlIHdyYXBwZWRGbkFyZyA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgSlNGdW5jdGlvbiogd3JhcHBlZEZuID0ganNEeW5h
bWljQ2FzdDxKU0Z1bmN0aW9uKj4odm0sIHdyYXBwZWRGbkFyZyk7CisgICAgSlNWYWx1ZSB0YXJn
ZXRSZWFsbUFyZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CisgICAgU2hhZG93UmVhbG1PYmpl
Y3QqIHRhcmdldFJlYWxtID0ganNEeW5hbWljQ2FzdDxTaGFkb3dSZWFsbU9iamVjdCo+KHZtLCB0
YXJnZXRSZWFsbUFyZyk7CisgICAgQVNTRVJUKHRhcmdldFJlYWxtKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgYm9vbCBpc0J1aWx0aW4gPSBmYWxzZTsKKyAg
ICBKU0dsb2JhbE9iamVjdCogdGFyZ2V0R2xvYmFsT2JqID0gdGFyZ2V0UmVhbG0tPmdsb2JhbE9i
amVjdCgpOworICAgIHdyYXBwZWRGbi0+c2V0UHJvdG90eXBlKHZtLCB0YXJnZXRHbG9iYWxPYmos
IHRhcmdldEdsb2JhbE9iai0+c3RyaWN0RnVuY3Rpb25TdHJ1Y3R1cmUoaXNCdWlsdGluKS0+c3Rv
cmVkUHJvdG90eXBlKCkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Qcm90b3R5cGUuaApp
bmRleCAxNDFlMjZiZTYxMDBkYmQ0ZmY1OTllYWM0Y2RmMzc4MWYzZGNjNzkzLi44YzM0MGFkNzNh
NTliOWJiYTg4NjU4YTJhZWNmYjY5ODkzNzc3ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmgKQEAgLTYzLDUgKzYzLDYg
QEAgcHJpdmF0ZToKIAogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihpbXBvcnRJblJlYWxtKTsK
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZXZhbEluUmVhbG0pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihtb3ZlRnVuY3Rpb25Ub1JlYWxtKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUz
NTYyZDQ4YWYxNjJkMTUyYjU4NTNkOTg3OWVlYmNlMDIwYzYxMDcuLjk2NGU0YjIyZjcwMjMyYjMw
NGIzNTE0NTUwMzhhZjA4OWZhMjRiZDcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMTEtMTUgIEpvc2Vw
aCBHcmllZ28gIDxqZ3JpZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0pTQ10gU2hhZG93IHJl
YWxtczogc2V0IGNvcnJlY3QgRnVuY3Rpb24gcHJvdG90eXBlIG9uIHdyYXBwZWQgZnVuY3Rpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdCBwcmVz
ZW50LCB0aGUgRnVuY3Rpb24gcHJvdG90eXBlIHNldCBvbiBlYWNoIG9mIHRoZSByZXR1cm5lZCB3
cmFwcGVkCisgICAgICAgIGZ1bmN0aW9ucyB3aWxsIGJlIHRoZSBGdW5jdGlvbiBvYmplY3QgZnJv
bSB0aGUgcmVhbG0gdGhlIHNoYWRvdyByZWFsbQorICAgICAgICBidWlsdGluIGlzIGZyb20tLXRv
IGNvbXBseSB3aXRoIHRoZSBsYXRlc3QgZHJhZnQgb2YgdGhlIHNoYWRvdyByZWFsbXMKKyAgICAg
ICAgc3BlYyBbMV0sIHdyYXBwZWQgZnVuY3Rpb24gb2JqZWN0cyBzaG91bGQgaGF2ZSB0aGUgRnVu
Y3Rpb24gcHJvdG90eXBlCisgICAgICAgIGZyb20gdGhlIHJlYWxtIHRoZSB3cmFwcGVyIG9iamVj
dCBpcyBkZXN0aW5lZCBmb3IsIGluc3RlYWQuCisKKyAgICAgICAgQXQgcHJlc2VudCwgdGhpcyBy
ZXF1aXJlcyB0cmFja2luZyBib3RoIHRoZSBjYWxsaW5nIChkZXN0aW5hdGlvbikgYW5kCisgICAg
ICAgIHRhcmdldCAoc291cmNlKSByZWFsbSBhbmQgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHR3byBh
cyBmdW5jdGlvbgorICAgICAgICBhcmd1bWVudHMgYXJlIHdyYXBwZWQgKHdoZW4gdGhlIG5vdGlv
biBvZiBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHJlYWxtCisgICAgICAgIGFsc28gZmxpcHMpCisK
KyAgICAgICAgQWRkcyBhIHNpbXBsZSBidWlsdGluIChtb3ZlRnVuY3Rpb25Ub1JlYWxtKSB0aGF0
IGNhbiBzd2l0Y2ggdGhlIEZ1bmN0aW9uCisgICAgICAgIHByb3RvdHlwZSBnaXZlbiBvbmx5IHRo
ZSBTaGFkb3cgUmVhbG0gb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICAgIGNvcnJl
Y3QgZ2xvYmFsIG9iamVjdC4KKworICAgICAgICBBbHNvIG1hcmtzIHRoZSBjb3JyZXNwb25kaW5n
IHBhcnQgb2YgdGVzdDI2MiBhcyBwYXNzaW5nLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3Rh
dGlvbnMueWFtbDoKKwogMjAyMS0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIFVzZSBDYWxsTGlua0luZm8gaW4gTExJbnQKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1yZWFsbS1ldmFsdWF0ZS5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3NoYWRvdy1yZWFsbS1ldmFsdWF0ZS5qcwppbmRleCBlYzAzZjgzOGI4NmUyOWIwZjk2ZDFi
NDk1ZDE0MDVkZDViM2UyMmNjLi5lNzliNjRlZjY4NjM0NmY4Nzg1NjQwYzY5ZDc4ODhiZWZiN2Q1
YjllIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctcmVhbG0tZXZhbHVhdGUuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LXJlYWxtLWV2YWx1YXRlLmpzCkBAIC03Nyw2ICs3
Nyw3IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSwgYXNzZXJ0aW9uRm4p
IHsKICAgICBsZXQgd3JhcHBlZEludm9rZUFuZEFkZCA9IHJlYWxtLmV2YWx1YXRlKCJmdW5jdGlv
biBpbnZva2VBbmRBZGQoeEZuLCB5Rm4pIHsgcmV0dXJuIHhGbigpICsgeUZuKCk7IH07IGludm9r
ZUFuZEFkZCIpOwogICAgIHNob3VsZEJlKHdyYXBwZWRJbnZva2VBbmRBZGQoKCkgPT4geyByZXR1
cm4gMSB9LCAoKSA9PiB7IHJldHVybiAyIH0pLCAzKTsKICAgICBzaG91bGRCZSgkLmdsb2JhbE9i
amVjdEZvcih3cmFwcGVkSW52b2tlQW5kQWRkKSwgZ2xvYmFsVGhpcyk7CisgICAgc2hvdWxkQmUo
T2JqZWN0LmdldFByb3RvdHlwZSh3cmFwcGVkSW52b2tlQW5kQWRkKSwgRnVuY3Rpb24ucHJvdG90
eXBlKTsKIAogICAgIC8vIG5hbWUgYW5kIGxlbmd0aCBwcm9wZXJ0aWVzIGZyb20gd3JhcHBlZCBm
dW5jdGlvbiBhcmUgYWJzZW50CiAgICAgc2hvdWxkQmUoT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcih3cmFwcGVkSW52b2tlQW5kQWRkLCAibGVuZ3RoIiksIHVuZGVmaW5lZCk7CkBAIC0x
MjIsNiArMTIzLDcgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlLCBhc3Nl
cnRpb25GbikgewogICAgICAgICBsZXQgZiA9IGRvRXZhbChyZWFsbSwgJyh4KSA9PiB7IHJldHVy
biB4KCkgKyBnbG9iYWxUaGlzLnNlY3JldDsgfScpOwogICAgICAgICBzaG91bGRCZSgkLmdsb2Jh
bE9iamVjdEZvcihmKSwgZ2xvYmFsVGhpcyk7CiAgICAgICAgIHNob3VsZEJlKGYoKCkgPT4geyBy
ZXR1cm4gNDE7IH0pLCA0Mik7CisgICAgICAgIHNob3VsZEJlKE9iamVjdC5nZXRQcm90b3R5cGUo
ZiksIEZ1bmN0aW9uLnByb3RvdHlwZSk7CiAgICAgfQogICAgIC8vIChwb3RlbnRpYWwpIGlubGlu
aW5nIG9mIHdyYXBwZWQgZnVuY3Rpb24gdXNlcyBjb3JyZWN0IGdsb2JhbCBvYmplY3QKICAgICBs
ZXQgZiA9IGRvRXZhbChyZWFsbSwgJyh4KSA9PiB7IHJldHVybiB4KCkgKyBnbG9iYWxUaGlzLnNl
Y3JldDsgfScpOwpAQCAtMTUxLDMgKzE1MywyMyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5j
LCBlcnJvclR5cGUsIGFzc2VydGlvbkZuKSB7CiAgICAgc2hvdWxkQmUoZXZhbHVhdGVMZW5ndGgu
d3JpdGFibGUsIGZhbHNlKTsKICAgICBzaG91bGRCZShldmFsdWF0ZUxlbmd0aC5jb25maWd1cmFi
bGUsIHRydWUpOwogfQorCisvLyBFbmNsb3NpbmcgcmVhbG0gaXMgaGlkZGVuIGZyb20gc2hhb2R3
IHJlYWxtIGV2ZW4gd2hlbiBwbGF5aW5nIEZ1bmN0aW9uIHByb3RvdHlwZSB0cmlja3MKK3sKKyAg
ICBnbG9iYWxUaGlzLmZvbyA9IDQyOworICAgIGxldCByZWFsbSA9IG5ldyBTaGFkb3dSZWFsbSgp
OworCisgICAgcmVhbG0uZXZhbHVhdGUoImdsb2JhbFRoaXMuZm9vID0gZmFsc2UiKTsKKworICAg
IGxldCByZWFsbUZuID0gcmVhbG0uZXZhbHVhdGUoYChmKSA9PiB7CisgICAgICBsZXQgRnVuY3Rp
b24gPSBPYmplY3QuZ2V0UHJvdG90eXBlKGYpOworICAgICAgcmV0dXJuIChuZXcgRnVuY3Rpb24o
InJldHVybiB0aGlzIikpKCkuZm9vCisgICAgfWApOworCisgICAgbGV0IHJldHJpZXZlZEZvbyA9
IHJlYWxtRm4oKCkgPT4ge30pOworICAgIGxldCBhRnVuY3Rpb24gPSBPYmplY3QuZ2V0UHJvdG90
eXBlKHJlYWxtRm4pOworICAgIGxldCBhbm90aGVyRm9vID0gKG5ldyBhRnVuY3Rpb24oInJldHVy
biB0aGlzIikpKCkuZm9vOworCisgICAgc2hvdWxkQmUocmV0cmlldmVkRm9vLCBmYWxzZSk7Cisg
ICAgc2hvdWxkQmUoYW5vdGVockZvbywgNDIpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
CmluZGV4IGU2ZTU3Y2M4ZmY5YzE4NTczNTZhMTcxNDQyZmE1ZjJkODE2YzQ0ODAuLjVmMmM5MjU2
MTA1ZWFlOWFlZmQ1NGFjMTgzMGQyNTQwNWZkYTE5M2EgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwKQEAgLTExMzcsOSArMTEzNyw2IEBAIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9wcm90b3R5
cGUvZXhlYy91LWxhc3RpbmRleC1hZHYuanM6CiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcXVhbnRp
Zmllci1pbnRlZ2VyLWxpbWl0LmpzOgogICBkZWZhdWx0OiAnU3ludGF4RXJyb3I6IEludmFsaWQg
cmVndWxhciBleHByZXNzaW9uOiBudW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXInCiAg
IHN0cmljdCBtb2RlOiAnU3ludGF4RXJyb3I6IEludmFsaWQgcmVndWxhciBleHByZXNzaW9uOiBu
dW1iZXIgdG9vIGxhcmdlIGluIHt9IHF1YW50aWZpZXInCi10ZXN0L2J1aWx0LWlucy9TaGFkb3dS
ZWFsbS9wcm90b3R5cGUvZXZhbHVhdGUvd3JhcHBlZC1mdW5jdGlvbi1wcm90by1mcm9tLWNhbGxl
ci1yZWFsbS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogY2FsbGFibGUgYXJndW1lbnRz
IHBhc3NlZCBpbnRvIFdyYXBwZWRGdW5jdGlvbiBzaG91bGQgYmUgd3JhcHBlZCBpbiB0YXJnZXQg
cmVhbG0gRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywgwqt0cnVlwrspIHRvIGJlIHRydWUn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBjYWxsYWJsZSBhcmd1bWVudHMgcGFzc2Vk
IGludG8gV3JhcHBlZEZ1bmN0aW9uIHNob3VsZCBiZSB3cmFwcGVkIGluIHRhcmdldCByZWFsbSBF
eHBlY3RlZCBTYW1lVmFsdWUowqtmYWxzZcK7LCDCq3RydWXCuykgdG8gYmUgdHJ1ZScKIHRlc3Qv
YnVpbHQtaW5zL1RlbXBvcmFsL0luc3RhbnQvcHJvdG90eXBlL3RvU3RyaW5nL3RpbWV6b25lLW9m
ZnNldC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogb2Zmc2V0IG9mIFVUQyBpcyArMDA6
MDAgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMTk3MC0wMS0wMVQwMDowMDowMFrCuywgwqsxOTcwLTAx
LTAxVDAwOjAwOjAwKzAwOjAwwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBvZmZzZXQgb2YgVVRDIGlzICswMDowMCBFeHBlY3RlZCBTYW1lVmFsdWUowqsxOTcw
LTAxLTAxVDAwOjAwOjAwWsK7LCDCqzE5NzAtMDEtMDFUMDA6MDA6MDArMDA6MDDCuykgdG8gYmUg
dHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444748</attachid>
            <date>2021-11-18 15:48:41 -0800</date>
            <delta_ts>2021-11-19 11:17:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233143-20211118184840.patch</filename>
            <type>text/plain</type>
            <size>14465</size>
            <attacher name="Joseph Griego">joseph.j.griego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YjZhMDQwMzliZjI5NDZiMDY0Mzg5ZGNlNDNmYWUxMDNlYmUyYmJhLi5jMWFmZTEyNjhhNjliOWEw
NmJiZTNkY2NhMWRiNjFmMWRkM2Y5NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAyMS0xMS0xOCAgSm9zZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNv
bT4KKworICAgICAgICBbSlNDXSBTaGFkb3cgcmVhbG1zOiBzZXQgY29ycmVjdCBGdW5jdGlvbiBw
cm90b3R5cGUgb24gd3JhcHBlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEF0IHByZXNlbnQsIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUg
c2V0IG9uIGVhY2ggb2YgdGhlIHJldHVybmVkIHdyYXBwZWQKKyAgICAgICAgZnVuY3Rpb25zIHdp
bGwgYmUgdGhlIEZ1bmN0aW9uIG9iamVjdCBmcm9tIHRoZSByZWFsbSB0aGUgc2hhZG93IHJlYWxt
CisgICAgICAgIGJ1aWx0aW4gaXMgZnJvbS0tdG8gY29tcGx5IHdpdGggdGhlIGxhdGVzdCBkcmFm
dCBvZiB0aGUgc2hhZG93IHJlYWxtcworICAgICAgICBzcGVjIFsxXSwgd3JhcHBlZCBmdW5jdGlv
biBvYmplY3RzIHNob3VsZCBoYXZlIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUKKyAgICAgICAgZnJv
bSB0aGUgcmVhbG0gdGhlIHdyYXBwZXIgb2JqZWN0IGlzIGRlc3RpbmVkIGZvciwgaW5zdGVhZC4K
KworICAgICAgICBBdCBwcmVzZW50LCB0aGlzIHJlcXVpcmVzIHRyYWNraW5nIGJvdGggdGhlIGNh
bGxpbmcgKGRlc3RpbmF0aW9uKSBhbmQKKyAgICAgICAgdGFyZ2V0IChzb3VyY2UpIHJlYWxtIGFu
ZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgdHdvIGFzIGZ1bmN0aW9uCisgICAgICAgIGFyZ3VtZW50
cyBhcmUgd3JhcHBlZCAod2hlbiB0aGUgbm90aW9uIG9mIHNvdXJjZSBhbmQgZGVzdGluYXRpb24g
cmVhbG0KKyAgICAgICAgYWxzbyBmbGlwcykKKworICAgICAgICBBZGRzIGEgc2ltcGxlIGJ1aWx0
aW4gKG1vdmVGdW5jdGlvblRvUmVhbG0pIHRoYXQgY2FuIHN3aXRjaCB0aGUgRnVuY3Rpb24KKyAg
ICAgICAgcHJvdG90eXBlIGdpdmVuIG9ubHkgdGhlIFNoYWRvdyBSZWFsbSBvYmplY3QgY29ycmVz
cG9uZGluZyB0byB0aGUKKyAgICAgICAgY29ycmVjdCBnbG9iYWwgb2JqZWN0LgorCisgICAgICAg
IEFsc28gbWFya3MgdGhlIGNvcnJlc3BvbmRpbmcgcGFydCBvZiB0ZXN0MjYyIGFzIHBhc3Npbmcu
CisKKyAgICAgICAgWzFdIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1zaGFkb3dyZWFsbS8gc2Vj
dGlvbnMgMi4xLCAyLjIKKworCisKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoK
KyAgICAgICAgKiBidWlsdGlucy9TaGFkb3dSZWFsbVByb3RvdHlwZS5qczoKKyAgICAgICAgKHdy
YXBwZWQpOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS53cmFwKToKKyAgICAgICAgKGV2YWx1YXRl
KToKKyAgICAgICAgKGltcG9ydFZhbHVlKToKKyAgICAgICAgKGdsb2JhbFByaXZhdGUud3JhcC53
cmFwcGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9MaW5rVGltZUNvbnN0YW50Lmg6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKiBydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKiBydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmg6CisKIDIwMjEtMTEtMTggIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgYnJhbmNo
VGVzdDE2IG9wZXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0
aW5OYW1lcy5oCmluZGV4IGNlZDMwYThlYThmNzFmN2EwMmE2MmViNDJiNWUxNTc2NjI4OWRhMzQu
LjU2OGRhMTljODY1NzNiOGY3ZjMwZTg4ZDNkZjhlMDE2YjgxODkzMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTExOCw2ICsxMTgsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyh0aGlzKSBcCiAgICAgbWFjcm8oaW1wb3J0SW5S
ZWFsbSkgXAogICAgIG1hY3JvKGV2YWxJblJlYWxtKSBcCisgICAgbWFjcm8obW92ZUZ1bmN0aW9u
VG9SZWFsbSkgXAogICAgIG1hY3JvKHRoaXNUaW1lVmFsdWUpIFwKICAgICBtYWNybyhuZXdUYXJn
ZXRMb2NhbCkgXAogICAgIG1hY3JvKGRlcml2ZWRDb25zdHJ1Y3RvcikgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1NoYWRvd1JlYWxtUHJvdG90eXBlLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1NoYWRvd1JlYWxtUHJvdG90eXBlLmpzCmlu
ZGV4IDBjMDAzNTk3ZWY2MDgzNGNhMGI3YWUwMDBjMDNmNTJhODRkZWY0YTYuLjI5YmE4MzA2N2U2
NWIwOGY2YTYyNjk5M2FmZGQxZjZiMTk4YjBjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9TaGFkb3dSZWFsbVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvU2hhZG93UmVhbG1Qcm90b3R5cGUuanMKQEAgLTIzLDggKzIz
LDExIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gV3Jh
cCBhIHZhbHVlIGF0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIHRoZSBpbmN1YmF0aW5nIHJlYWxtIGFu
ZCBgc2hhZG93UmVhbG1gOgorLy8gaWYgYGZyb21TaGFkb3dSZWFsbWAgaXMgZmFsc2UsIHdlIGFy
ZSB3cmFwcGluZyBhbiBvYmplY3QgZnJvbSB0aGUgaW5jdWJhdGluZworLy8gcmVhbG07IGlmIHRy
dWUsIHdlIGFyZSB3cmFwcGluZyBhbiBvYmplY3QgZnJvbSB0aGUgc2hhZG93IHJlYWxtCiBAZ2xv
YmFsUHJpdmF0ZQotZnVuY3Rpb24gd3JhcCh0YXJnZXQpCitmdW5jdGlvbiB3cmFwKGZyb21TaGFk
b3dSZWFsbSwgc2hhZG93UmVhbG0sIHRhcmdldCkKIHsKICAgICAidXNlIHN0cmljdCI7CiAKQEAg
LTMzLDEzICszNiwyMyBAQCBmdW5jdGlvbiB3cmFwKHRhcmdldCkKICAgICAgICAgICAgIHZhciBs
ZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOwogICAgICAgICAgICAgdmFyIHdyYXBwZWRBcmdzID0g
QG5ld0FycmF5V2l0aFNpemUobGVuZ3RoKTsKICAgICAgICAgICAgIGZvciAodmFyIGluZGV4ID0g
MDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpCi0gICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGly
ZWN0KHdyYXBwZWRBcmdzLCBpbmRleCwgQHdyYXAoYXJndW1lbnRzW2luZGV4XSkpOworICAgICAg
ICAgICAgICAgIC8vIE5vdGUgdGhhdCBmb3IgYXJndW1lbnRzLCB3ZSBmbGlwIGBmcm9tU2hhZG93
UmVhbG1gIHNpbmNlIHRvCisgICAgICAgICAgICAgICAgLy8gd3JhcCBhIGZ1bmN0aW9uIGZyb20g
cmVhbG0gQSB0byB3b3JrIGluIHJlYWxtIEIsIHdlIG5lZWQgdG8KKyAgICAgICAgICAgICAgICAv
LyB3cmFwIHRoZSBhcmd1bWVudHMgKGZyb20gcmVhbG0gQikgdG8gd29yayBpbiByZWFsbSBBIGJl
Zm9yZQorICAgICAgICAgICAgICAgIC8vIGNhbGxpbmcgdGhlIHdyYXBwZWQgZnVuY3Rpb24KKyAg
ICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3Qod3JhcHBlZEFyZ3MsIGluZGV4LCBAd3JhcCgh
ZnJvbVNoYWRvd1JlYWxtLCBzaGFkb3dSZWFsbSwgYXJndW1lbnRzW2luZGV4XSkpOwogCiAgICAg
ICAgICAgICB2YXIgcmVzdWx0ID0gdGFyZ2V0LkBhcHBseShAdW5kZWZpbmVkLCB3cmFwcGVkQXJn
cyk7Ci0gICAgICAgICAgICByZXR1cm4gQHdyYXAocmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVy
biBAd3JhcChmcm9tU2hhZG93UmVhbG0sIHNoYWRvd1JlYWxtLCByZXN1bHQpOwogICAgICAgICB9
OwogICAgICAgICBkZWxldGUgd3JhcHBlZFsnbmFtZSddOwogICAgICAgICBkZWxldGUgd3JhcHBl
ZFsnbGVuZ3RoJ107CisKKyAgICAgICAgLy8gQmVjYXVzZSB0aGlzIGZ1bmN0aW9uICh3cmFwKSB3
aWxsIHJ1biB3aXRoIHRoZSBpbmN1YmF0aW5nIHJlYWxtCisgICAgICAgIC8vIGFjdGl2ZSwgd2Ug
b25seSBuZWVkIHRvIGZpeCB0aGUgcHJvdG90eXBlIG9uIGB3cmFwcGVkYCBpZiB3ZSBhcmUKKyAg
ICAgICAgLy8gbW92aW5nIHRoZSBmdW5jdGlvbiBmcm9tIHRoZSBpbmN1YmF0aW5nIHJlYWxtIHRv
IHRoZSBzaGFkb3cgcmVhbG0KKyAgICAgICAgaWYgKCFmcm9tU2hhZG93UmVhbG0pCisgICAgICAg
ICAgICBAbW92ZUZ1bmN0aW9uVG9SZWFsbSh3cmFwcGVkLCBzaGFkb3dSZWFsbSk7CiAgICAgICAg
IHJldHVybiB3cmFwcGVkOwogICAgIH0gZWxzZSBpZiAoQGlzT2JqZWN0KHRhcmdldCkpIHsKICAg
ICAgICAgQHRocm93VHlwZUVycm9yKCJ2YWx1ZSBwYXNzaW5nIGJldHdlZW4gcmVhbG1zIG11c3Qg
YmUgY2FsbGFibGUgb3IgcHJpbWl0aXZlIik7CkBAIC01OCw3ICs3MSw3IEBAIGZ1bmN0aW9uIGV2
YWx1YXRlKHNvdXJjZVRleHQpCiAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigiYCVTaGFkb3dSZWFs
bSUuZXZhbHVhdGUgcmVxdWlyZXMgdGhhdCB0aGUgfHNvdXJjZVRleHR8IGFyZ3VtZW50IGJlIGEg
c3RyaW5nIik7CiAKICAgICB2YXIgcmVzdWx0ID0gQGV2YWxJblJlYWxtKHRoaXMsIHNvdXJjZVRl
eHQpCi0gICAgcmV0dXJuIEB3cmFwKHJlc3VsdCk7CisgICAgcmV0dXJuIEB3cmFwKHRydWUsIHRo
aXMsIHJlc3VsdCk7CiB9CiAKIGZ1bmN0aW9uIGltcG9ydFZhbHVlKHNwZWNpZmllciwgZXhwb3J0
TmFtZSkKQEAgLTc2LDcgKzg5LDcgQEAgZnVuY3Rpb24gaW1wb3J0VmFsdWUoc3BlY2lmaWVyLCBl
eHBvcnROYW1lKQogICAgICAgICBpZiAobG9va3VwID09PSBAdW5kZWZpbmVkKQogICAgICAgICAg
ICAgQHRocm93VHlwZUVycm9yKCIlU2hhZG93UmVhbG0lLmltcG9ydFZhbHVlIHJlcXVpcmVzIHxl
eHBvcnROYW1lfCB0byBleGlzdCBpbiB0aGUgfHNwZWNpZmllcnwiKTsKIAotICAgICAgICByZXR1
cm4gQHdyYXAobG9va3VwKTsKKyAgICAgICAgcmV0dXJuIEB3cmFwKHRydWUsIHRoaXMsIGxvb2t1
cCk7CiAgICAgfTsKIAogICAgIHZhciBjcm9zc1JlYWxtVGhyb3cgPSAoZXJyb3IpID0+IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCmlu
ZGV4IDFlNTIzOGRkZjJkYmQwNjZiZTI2ZmEyMGFmZTM3YzliNzRlMGZmOGEuLjU3YTkwZWMwZmFj
YzEyZGRjZDlhYmY0YWMyZjJkY2JhYjBlMGZhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaApAQCAtODAsNiArODAsNyBAQCBjbGFz
cyBKU0dsb2JhbE9iamVjdDsKICAgICB2KHRoaXNUaW1lVmFsdWUsIG51bGxwdHIpIFwKICAgICB2
KGltcG9ydEluUmVhbG0sIG51bGxwdHIpIFwKICAgICB2KGV2YWxJblJlYWxtLCBudWxscHRyKSBc
CisgICAgdihtb3ZlRnVuY3Rpb25Ub1JlYWxtLCBudWxscHRyKSBcCiAgICAgdihpc0NvbnN0cnVj
dG9yLCBudWxscHRyKSBcCiAgICAgdihzYW1lVmFsdWUsIG51bGxwdHIpIFwKICAgICB2KHJlZ0V4
cFByb3RvRmxhZ3NHZXR0ZXIsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAyYTRjZjJlMjc4N2Y0N2ZlZjIyMDA2
NzYwNGI0MzM4NTliN2Q4OTBkLi5jZmY0N2IwNTEwNzk3NmNhZGY0ODE0NzU0MjNlODZlZjgxNTg2
YzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCkBAIC0xNDYwLDYgKzE0NjAsOSBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3Rvciog
bG93ZXJOYW1lICMjIENvbnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAg
IG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3Rh
bnQ6OmV2YWxJblJlYWxtKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0NlbGw+
JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5pdC52
bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0cmluZygpLCBldmFs
SW5SZWFsbSkpOwogICAgICAgICB9KTsKKyAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19j
YXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50Ojptb3ZlRnVuY3Rpb25Ub1JlYWxtKV0uaW5p
dExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CisgICAgICAgICAg
ICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2Jq
ZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0cmluZygpLCBtb3ZlRnVuY3Rpb25Ub1JlYWxtKSk7Cisg
ICAgICAgIH0pOwogICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KExpbmtUaW1lQ29uc3RhbnQ6OnRoaXNUaW1lVmFsdWUpXS5pbml0TGF0ZXIoW10gKGNvbnN0IElu
aXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rp
b246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwg
MCwgU3RyaW5nKCksIGRhdGVQcm90b0Z1bmNHZXRUaW1lLCBEYXRlUHJvdG90eXBlR2V0VGltZUlu
dHJpbnNpYykpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmNwcAppbmRleCBjYmY2MTMyMGE3ZGI0ZjA3
MmZhYjkzYTFhZjRiMDJhZjhlMTllYzFhLi4wNDM4ZGI0YWNiOWM1NDJmZjdiODM3OTg1MTkzZjEx
NjcxNjQzMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2hhZG93UmVhbG1Qcm90b3R5cGUuY3BwCkBAIC0xMjQsNCArMTI0LDIyIEBAIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihldmFsSW5SZWFsbSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpKTsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1vdmVGdW5jdGlvblRv
UmVhbG0sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTVmFsdWUgd3JhcHBlZEZuQXJnID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBKU0Z1bmN0aW9uKiB3cmFwcGVkRm4gPSBqc0R5
bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgd3JhcHBlZEZuQXJnKTsKKyAgICBKU1ZhbHVlIHRh
cmdldFJlYWxtQXJnID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKKyAgICBTaGFkb3dSZWFsbU9i
amVjdCogdGFyZ2V0UmVhbG0gPSBqc0R5bmFtaWNDYXN0PFNoYWRvd1JlYWxtT2JqZWN0Kj4odm0s
IHRhcmdldFJlYWxtQXJnKTsKKyAgICBBU1NFUlQodGFyZ2V0UmVhbG0pOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBib29sIGlzQnVpbHRpbiA9IGZhbHNlOwor
ICAgIEpTR2xvYmFsT2JqZWN0KiB0YXJnZXRHbG9iYWxPYmogPSB0YXJnZXRSZWFsbS0+Z2xvYmFs
T2JqZWN0KCk7CisgICAgd3JhcHBlZEZuLT5zZXRQcm90b3R5cGUodm0sIHRhcmdldEdsb2JhbE9i
aiwgdGFyZ2V0R2xvYmFsT2JqLT5zdHJpY3RGdW5jdGlvblN0cnVjdHVyZShpc0J1aWx0aW4pLT5z
dG9yZWRQcm90b3R5cGUoKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3RvdHlwZS5o
CmluZGV4IDE0MWUyNmJlNjEwMGRiZDRmZjU5OWVhYzRjZGYzNzgxZjNkY2M3OTMuLjhjMzQwYWQ3
M2E1OWI5YmJhODg2NThhMmFlY2ZiNjk4OTM3Nzc4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Qcm90b3R5cGUuaApAQCAtNjMsNSArNjMs
NiBAQCBwcml2YXRlOgogCiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGltcG9ydEluUmVhbG0p
OwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihldmFsSW5SZWFsbSk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKG1vdmVGdW5jdGlvblRvUmVhbG0pOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjljMzFkYTg2MWQ2N2MxODE5NGVmNDUzMGIwMzM5ZDVkOTNlMmZlOC4uNWRmMzlkYzQ0MjU1Mzhl
ZjEwOGQ4YzFmYzk4NjA5Yzc1ODlkYTIyMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0xMS0xOCAgSm9z
ZXBoIEdyaWVnbyAgPGpncmllZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXSBTaGFkb3cg
cmVhbG1zOiBzZXQgY29ycmVjdCBGdW5jdGlvbiBwcm90b3R5cGUgb24gd3JhcHBlZCBmdW5jdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF0IHBy
ZXNlbnQsIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgc2V0IG9uIGVhY2ggb2YgdGhlIHJldHVybmVk
IHdyYXBwZWQKKyAgICAgICAgZnVuY3Rpb25zIHdpbGwgYmUgdGhlIEZ1bmN0aW9uIG9iamVjdCBm
cm9tIHRoZSByZWFsbSB0aGUgc2hhZG93IHJlYWxtCisgICAgICAgIGJ1aWx0aW4gaXMgZnJvbS0t
dG8gY29tcGx5IHdpdGggdGhlIGxhdGVzdCBkcmFmdCBvZiB0aGUgc2hhZG93IHJlYWxtcworICAg
ICAgICBzcGVjIFsxXSwgd3JhcHBlZCBmdW5jdGlvbiBvYmplY3RzIHNob3VsZCBoYXZlIHRoZSBG
dW5jdGlvbiBwcm90b3R5cGUKKyAgICAgICAgZnJvbSB0aGUgcmVhbG0gdGhlIHdyYXBwZXIgb2Jq
ZWN0IGlzIGRlc3RpbmVkIGZvciwgaW5zdGVhZC4KKworICAgICAgICBBdCBwcmVzZW50LCB0aGlz
IHJlcXVpcmVzIHRyYWNraW5nIGJvdGggdGhlIGNhbGxpbmcgKGRlc3RpbmF0aW9uKSBhbmQKKyAg
ICAgICAgdGFyZ2V0IChzb3VyY2UpIHJlYWxtIGFuZCBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgdHdv
IGFzIGZ1bmN0aW9uCisgICAgICAgIGFyZ3VtZW50cyBhcmUgd3JhcHBlZCAod2hlbiB0aGUgbm90
aW9uIG9mIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gcmVhbG0KKyAgICAgICAgYWxzbyBmbGlwcykK
KworICAgICAgICBBZGRzIGEgc2ltcGxlIGJ1aWx0aW4gKG1vdmVGdW5jdGlvblRvUmVhbG0pIHRo
YXQgY2FuIHN3aXRjaCB0aGUgRnVuY3Rpb24KKyAgICAgICAgcHJvdG90eXBlIGdpdmVuIG9ubHkg
dGhlIFNoYWRvdyBSZWFsbSBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgICAgY29y
cmVjdCBnbG9iYWwgb2JqZWN0LgorCisgICAgICAgIEFsc28gbWFya3MgdGhlIGNvcnJlc3BvbmRp
bmcgcGFydCBvZiB0ZXN0MjYyIGFzIHBhc3NpbmcuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVj
dGF0aW9ucy55YW1sOgorCiAyMDIxLTExLTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0pTQ10gVHlwZWRBcnJheSBHZXRBcnJheUxlbmd0aCBzaG91bGQg
bm90IHVzZSBSZXVzZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LXJlYWxtLWV2
YWx1YXRlLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LXJlYWxtLWV2YWx1YXRlLmpzCmluZGV4
IGVjMDNmODM4Yjg2ZTI5YjBmOTZkMWI0OTVkMTQwNWRkNWIzZTIyY2MuLjllMDJjNWNkNGY4MTY0
NDA1Y2ExNjBmNWEyOWQyZmI2YzE3ODRhY2IgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3No
YWRvdy1yZWFsbS1ldmFsdWF0ZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctcmVhbG0t
ZXZhbHVhdGUuanMKQEAgLTc3LDYgKzc3LDcgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywg
ZXJyb3JUeXBlLCBhc3NlcnRpb25GbikgewogICAgIGxldCB3cmFwcGVkSW52b2tlQW5kQWRkID0g
cmVhbG0uZXZhbHVhdGUoImZ1bmN0aW9uIGludm9rZUFuZEFkZCh4Rm4sIHlGbikgeyByZXR1cm4g
eEZuKCkgKyB5Rm4oKTsgfTsgaW52b2tlQW5kQWRkIik7CiAgICAgc2hvdWxkQmUod3JhcHBlZElu
dm9rZUFuZEFkZCgoKSA9PiB7IHJldHVybiAxIH0sICgpID0+IHsgcmV0dXJuIDIgfSksIDMpOwog
ICAgIHNob3VsZEJlKCQuZ2xvYmFsT2JqZWN0Rm9yKHdyYXBwZWRJbnZva2VBbmRBZGQpLCBnbG9i
YWxUaGlzKTsKKyAgICBzaG91bGRCZShPYmplY3QuZ2V0UHJvdG90eXBlT2Yod3JhcHBlZEludm9r
ZUFuZEFkZCksIEZ1bmN0aW9uLnByb3RvdHlwZSk7CiAKICAgICAvLyBuYW1lIGFuZCBsZW5ndGgg
cHJvcGVydGllcyBmcm9tIHdyYXBwZWQgZnVuY3Rpb24gYXJlIGFic2VudAogICAgIHNob3VsZEJl
KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod3JhcHBlZEludm9rZUFuZEFkZCwgImxl
bmd0aCIpLCB1bmRlZmluZWQpOwpAQCAtMTIyLDEyICsxMjMsMTQgQEAgZnVuY3Rpb24gc2hvdWxk
VGhyb3coZnVuYywgZXJyb3JUeXBlLCBhc3NlcnRpb25GbikgewogICAgICAgICBsZXQgZiA9IGRv
RXZhbChyZWFsbSwgJyh4KSA9PiB7IHJldHVybiB4KCkgKyBnbG9iYWxUaGlzLnNlY3JldDsgfScp
OwogICAgICAgICBzaG91bGRCZSgkLmdsb2JhbE9iamVjdEZvcihmKSwgZ2xvYmFsVGhpcyk7CiAg
ICAgICAgIHNob3VsZEJlKGYoKCkgPT4geyByZXR1cm4gNDE7IH0pLCA0Mik7CisgICAgICAgIHNo
b3VsZEJlKE9iamVjdC5nZXRQcm90b3R5cGVPZihmKSwgRnVuY3Rpb24ucHJvdG90eXBlKTsKICAg
ICB9CiAgICAgLy8gKHBvdGVudGlhbCkgaW5saW5pbmcgb2Ygd3JhcHBlZCBmdW5jdGlvbiB1c2Vz
IGNvcnJlY3QgZ2xvYmFsIG9iamVjdAogICAgIGxldCBmID0gZG9FdmFsKHJlYWxtLCAnKHgpID0+
IHsgcmV0dXJuIHgoKSArIGdsb2JhbFRoaXMuc2VjcmV0OyB9Jyk7CiAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CiAgICAgICAgIHNob3VsZEJlKCQuZ2xvYmFsT2JqZWN0Rm9y
KGYpLCBnbG9iYWxUaGlzKTsKICAgICAgICAgc2hvdWxkQmUoZigoKSA9PiB7IHJldHVybiA0MTsg
fSksIDQyKTsKKyAgICAgICAgc2hvdWxkQmUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGYpLCBGdW5j
dGlvbi5wcm90b3R5cGUpOwogICAgIH0KICAgICAvLyAocG90ZW50aWFsKSBpbmxpbmluZyBpbnNp
ZGUgYSByZWFsbSB1c2VzIGNvcnJlY3QgZ2xvYmFsIG9iamVjdAogICAgIGxldCBsb29wSW5zaWRl
ID0gZG9FdmFsKHJlYWxtLCAnKHgpID0+IHsgbGV0IGFjYyA9IDA7IGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeyBhY2MgKz0geCgpOyB9OyByZXR1cm4gYWNjOyB9Jyk7CkBAIC0xNTEs
MyArMTU0LDIzIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSwgYXNzZXJ0
aW9uRm4pIHsKICAgICBzaG91bGRCZShldmFsdWF0ZUxlbmd0aC53cml0YWJsZSwgZmFsc2UpOwog
ICAgIHNob3VsZEJlKGV2YWx1YXRlTGVuZ3RoLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CiB9CisKKy8v
IEVuY2xvc2luZyByZWFsbSBpcyBoaWRkZW4gZnJvbSBzaGFvZHcgcmVhbG0gZXZlbiB3aGVuIHBs
YXlpbmcgRnVuY3Rpb24gcHJvdG90eXBlIHRyaWNrcworeworICAgIGxldCByZWFsbSA9IG5ldyBT
aGFkb3dSZWFsbSgpOworICAgIGZvbyA9IDQyOworCisgICAgcmVhbG0uZXZhbHVhdGUoImZvbyA9
IGZhbHNlIik7CisKKyAgICBsZXQgcmVhbG1GbiA9IHJlYWxtLmV2YWx1YXRlKGAoZikgPT4gewor
ICAgICAgbGV0IG91ckZuID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGYpLmNvbnN0cnVjdG9yOwor
ICAgICAgcmV0dXJuIChuZXcgb3VyRm4oInJldHVybiB0aGlzIikpKCkuZm9vCisgICAgfWApOwor
CisgICAgbGV0IHJldHJpZXZlZEZvbyA9IHJlYWxtRm4oKCkgPT4ge30pOworICAgIGxldCBhRnVu
Y3Rpb24gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocmVhbG1GbikuY29uc3RydWN0b3I7CisgICAg
bGV0IGFub3RoZXJGb28gPSAobmV3IGFGdW5jdGlvbigicmV0dXJuIHRoaXMiKSkoKS5mb287CisK
KyAgICBzaG91bGRCZShyZXRyaWV2ZWRGb28sIGZhbHNlKTsKKyAgICBzaG91bGRCZShhbm90aGVy
Rm9vLCA0Mik7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggZTZlNTdjYzhmZjlj
MTg1NzM1NmExNzE0NDJmYTVmMmQ4MTZjNDQ4MC4uNWYyYzkyNTYxMDVlYWU5YWVmZDU0YWMxODMw
ZDI1NDA1ZmRhMTkzYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTEzNyw5ICsx
MTM3LDYgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL3UtbGFzdGluZGV4
LWFkdi5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9xdWFudGlmaWVyLWludGVnZXItbGltaXQu
anM6CiAgIGRlZmF1bHQ6ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246
IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllcicKICAgc3RyaWN0IG1vZGU6ICdTeW50
YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4g
e30gcXVhbnRpZmllcicKLXRlc3QvYnVpbHQtaW5zL1NoYWRvd1JlYWxtL3Byb3RvdHlwZS9ldmFs
dWF0ZS93cmFwcGVkLWZ1bmN0aW9uLXByb3RvLWZyb20tY2FsbGVyLXJlYWxtLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBjYWxsYWJsZSBhcmd1bWVudHMgcGFzc2VkIGludG8gV3JhcHBl
ZEZ1bmN0aW9uIHNob3VsZCBiZSB3cmFwcGVkIGluIHRhcmdldCByZWFsbSBFeHBlY3RlZCBTYW1l
VmFsdWUowqtmYWxzZcK7LCDCq3RydWXCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IGNhbGxhYmxlIGFyZ3VtZW50cyBwYXNzZWQgaW50byBXcmFwcGVkRnVuY3Rp
b24gc2hvdWxkIGJlIHdyYXBwZWQgaW4gdGFyZ2V0IHJlYWxtIEV4cGVjdGVkIFNhbWVWYWx1ZSjC
q2ZhbHNlwrssIMKrdHJ1ZcK7KSB0byBiZSB0cnVlJwogdGVzdC9idWlsdC1pbnMvVGVtcG9yYWwv
SW5zdGFudC9wcm90b3R5cGUvdG9TdHJpbmcvdGltZXpvbmUtb2Zmc2V0LmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBvZmZzZXQgb2YgVVRDIGlzICswMDowMCBFeHBlY3RlZCBTYW1lVmFs
dWUowqsxOTcwLTAxLTAxVDAwOjAwOjAwWsK7LCDCqzE5NzAtMDEtMDFUMDA6MDA6MDArMDA6MDDC
uykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IG9mZnNldCBvZiBV
VEMgaXMgKzAwOjAwIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzE5NzAtMDEtMDFUMDA6MDA6MDBawrss
IMKrMTk3MC0wMS0wMVQwMDowMDowMCswMDowMMK7KSB0byBiZSB0cnVlJwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>