<?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>212677</bug_id>
          
          <creation_ts>2020-06-02 18:06:36 -0700</creation_ts>
          <short_desc>Make `errors` an own property of `AggregateError` instead of a prototype accessor</short_desc>
          <delta_ts>2020-06-13 13:41:15 -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>JavaScriptCore</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>
          <dependson>202566</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>hi</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</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>1658528</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-02 18:06:36 -0700</bug_when>
    <thetext>Issue: &lt;https://github.com/tc39/proposal-promise-any/issues/38&gt;
PR: &lt;https://github.com/tc39/proposal-promise-any/pull/64&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658529</commentid>
    <comment_count>1</comment_count>
      <attachid>400872</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-02 18:08:23 -0700</bug_when>
    <thetext>Created attachment 400872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658533</commentid>
    <comment_count>2</comment_count>
      <attachid>400872</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-02 18:20:46 -0700</bug_when>
    <thetext>Comment on attachment 400872
Patch

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

r=me with comments

&gt; Source/JavaScriptCore/runtime/AggregateError.cpp:48
&gt; +    putDirectWithoutTransition(vm, vm.propertyNames-&gt;errors, constructArray(globalObject, static_cast&lt;ArrayAllocationProfile*&gt;(nullptr), errors), static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));

1. constructArray can throw an error potentially (e.g. OutOfMemory error in extreme condition). So, let&apos;s perform error check.

auto scope = DECLARE_THROW_SCOPE(vm);
JSArray* errors = constructArray(globalObject, static_cast&lt;ArrayAllocationProfile*&gt;(nullptr), errors);
RETURN_IF_EXCEPTION(scope, void());

2. Use putDirect instead of putDirectWithoutTransition. putXXXWithoutTransition will put this name to Structure without structure transition. So, putXXXWithoutTransition is only allowed for objects which are created per-JSGlobalObject etc.
For example, we create one  AggregateError with Structure A. This structure A will have &quot;errors&quot; name since we are not performing structure transition. But this A will be used for another AggregateError even if it was not having &quot;errors&quot; name yet.

&gt; Source/JavaScriptCore/runtime/AggregateError.h:61
&gt;          return Structure::create(vm, globalObject, prototype, TypeInfo(ErrorInstanceType, StructureFlags), info());

Let&apos;s remove subspaceFor function, and remove aggregateErrorSpace from VM. Now, the AggregateError&apos;s C++ class is identical to ErrorInstance. We do not need to have another IsoSubspace.

&gt; Source/JavaScriptCore/runtime/AggregateError.h:78
&gt;  

Let&apos;s put  `STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(AggregateError, AggregateError::Base);` to ensure that AggregateError can share IsoSubspace with ErrorInstance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658550</commentid>
    <comment_count>3</comment_count>
      <attachid>400872</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-02 18:48:49 -0700</bug_when>
    <thetext>Comment on attachment 400872
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/AggregateError.cpp:48
&gt;&gt; +    putDirectWithoutTransition(vm, vm.propertyNames-&gt;errors, constructArray(globalObject, static_cast&lt;ArrayAllocationProfile*&gt;(nullptr), errors), static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
&gt; 
&gt; 1. constructArray can throw an error potentially (e.g. OutOfMemory error in extreme condition). So, let&apos;s perform error check.
&gt; 
&gt; auto scope = DECLARE_THROW_SCOPE(vm);
&gt; JSArray* errors = constructArray(globalObject, static_cast&lt;ArrayAllocationProfile*&gt;(nullptr), errors);
&gt; RETURN_IF_EXCEPTION(scope, void());
&gt; 
&gt; 2. Use putDirect instead of putDirectWithoutTransition. putXXXWithoutTransition will put this name to Structure without structure transition. So, putXXXWithoutTransition is only allowed for objects which are created per-JSGlobalObject etc.
&gt; For example, we create one  AggregateError with Structure A. This structure A will have &quot;errors&quot; name since we are not performing structure transition. But this A will be used for another AggregateError even if it was not having &quot;errors&quot; name yet.

Ah!  I hadn&apos;t thought of the &quot;But this A will be used for another AggregateError even if it was not having &quot;errors&quot; name yet.&quot; situation.  Thanks for the detailed explanation :)

&gt;&gt; Source/JavaScriptCore/runtime/AggregateError.h:61
&gt;&gt;          return Structure::create(vm, globalObject, prototype, TypeInfo(ErrorInstanceType, StructureFlags), info());
&gt; 
&gt; Let&apos;s remove subspaceFor function, and remove aggregateErrorSpace from VM. Now, the AggregateError&apos;s C++ class is identical to ErrorInstance. We do not need to have another IsoSubspace.

Neat!

&gt;&gt; Source/JavaScriptCore/runtime/AggregateError.h:78
&gt;&gt;  
&gt; 
&gt; Let&apos;s put  `STATIC_ASSERT_ISO_SUBSPACE_SHARABLE(AggregateError, AggregateError::Base);` to ensure that AggregateError can share IsoSubspace with ErrorInstance.

Also Neat!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658565</commentid>
    <comment_count>4</comment_count>
      <attachid>400872</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-02 19:04:47 -0700</bug_when>
    <thetext>Comment on attachment 400872
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/AggregateError.h:61
&gt;&gt;&gt;          return Structure::create(vm, globalObject, prototype, TypeInfo(ErrorInstanceType, StructureFlags), info());
&gt;&gt; 
&gt;&gt; Let&apos;s remove subspaceFor function, and remove aggregateErrorSpace from VM. Now, the AggregateError&apos;s C++ class is identical to ErrorInstance. We do not need to have another IsoSubspace.
&gt; 
&gt; Neat!

Ah, and you can also remove destroy function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658569</commentid>
    <comment_count>5</comment_count>
      <attachid>400878</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-02 19:10:31 -0700</bug_when>
    <thetext>Created attachment 400878
Patch

i&apos;m going to wait for test262 to update before landing this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662128</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-12 13:41:06 -0700</bug_when>
    <thetext>Can we just land it with (almost) copied test262 tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662213</commentid>
    <comment_count>7</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-12 16:04:04 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #6)
&gt; Can we just land it with (almost) copied test262 tests?

AFAICT, this change would cause to fail a few existing test262 tests and I have yet to see any issues/PRs that would update them.

Here&apos;s all the related issues/PRs that I&apos;ve been able to find:
 - AggregateError Updates &lt;https://github.com/tc39/test262/issues/2646&gt;
 - AggregateError updates. Ref gh-2646 &lt;https://github.com/tc39/test262/pull/2647&gt;
neither of which change the tests from checking `AggregateError.prototype.errors` to checking for an own property on any `AggregateError` instance.

I can write some super simple tests for this in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662282</commentid>
    <comment_count>8</comment_count>
      <attachid>401815</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-12 18:15:36 -0700</bug_when>
    <thetext>Created attachment 401815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662283</commentid>
    <comment_count>9</comment_count>
      <attachid>401816</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-12 18:16:59 -0700</bug_when>
    <thetext>Created attachment 401816
Patch

oops, forgot the &quot;Reviewed by&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662417</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-13 13:40:14 -0700</bug_when>
    <thetext>Committed r263006: &lt;https://trac.webkit.org/changeset/263006&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401816.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662418</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-13 13:41:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/64332285&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400872</attachid>
            <date>2020-06-02 18:08:23 -0700</date>
            <delta_ts>2020-06-02 19:10:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212677-20200602190822.patch</filename>
            <type>text/plain</type>
            <size>10073</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI0ZmYyMDRjNzgwODMzOTZlN2UzY2EyM2ExM2Vi
M2FiMDFlMjE1NzcuLjcwMjdhMjE2ZDEzZjI0MjIyODczNDVjODJhY2FlNzk4NDU1MGFiNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA2LTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGBlcnJvcnNgIGFu
IG93biBwcm9wZXJ0eSBvZiBgQWdncmVnYXRlRXJyb3JgIGluc3RlYWQgb2YgYSBwcm90b3R5cGUg
YWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMjY3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQWdncmVnYXRl
RXJyb3IuY3BwOgorICAgICAgICAoSlNDOjpBZ2dyZWdhdGVFcnJvcjo6QWdncmVnYXRlRXJyb3Ip
OgorICAgICAgICAoSlNDOjpBZ2dyZWdhdGVFcnJvcjo6ZmluaXNoQ3JlYXRpb24pOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OnZpc2l0Q2hpbGRyZW4pOiBEZWxldGVkLgor
CisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5oOgorICAgICAgICAq
IHJ1bnRpbWUvQWdncmVnYXRlRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBZ2dy
ZWdhdGVFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjphZ2dy
ZWdhdGVFcnJvclByb3RvdHlwZUFjY2Vzc29yRXJyb3JzKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6
OmluaXRpYWxpemVBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKToKKworICAgICAgICAqIHJ1bnRp
bWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgQWRkIGBlcnJvcnNgLgorCiAyMDIwLTA2
LTAxICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBHcmFwaGljczogc2hvdWxkIHVzZSB0aGUgYGlkYCAobmFtZSkgb2YgdGhlIGFuaW1h
dGlvbiBpZiBpdCBleGlzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yLmNwcAppbmRleCA5NTU1MDNjZTlmMzVkY2Y5ZWE5YTQ1NTZkNWZkYzY5N2Iy
MjFjYjBlLi43ZjU5ZWU1N2QwZGZiZTg1ZmI4ZThlYTFiZDNjOTg0ZWViNjhjMjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCkBAIC0z
NSwyMSArMzUsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBBZ2dyZWdh
dGVFcnJvcjo6c19pbmZvID0geyAiQWdncmVnYXRlRXJyb3IiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFnZ3JlZ2F0ZUVycm9yKSB9OwogCi1B
Z2dyZWdhdGVFcnJvcjo6QWdncmVnYXRlRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgY29uc3QgTWFya2VkQXJndW1lbnRCdWZmZXImIGVycm9ycykKK0FnZ3JlZ2F0ZUVycm9yOjpB
Z2dyZWdhdGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlKQotICAgICwgbV9lcnJvcnMoZXJyb3JzLnNpemUoKSkKIHsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGVycm9ycy5zaXplKCk7ICsraSkKLSAgICAgICAgbV9lcnJvcnNb
aV0uc2V0V2l0aG91dFdyaXRlQmFycmllcihlcnJvcnMuYXQoaSkpOwogfQogCi12b2lkIEFnZ3Jl
Z2F0ZUVycm9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCit2b2lkIEFnZ3JlZ2F0ZUVycm9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJvcnMs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVU
eXBlIHR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQogewotICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8QWdncmVnYXRlRXJyb3IqPihjZWxsKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlz
T2JqZWN0LCB2aXNpdG9yKTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0LCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKKyAgICBBU1NF
UlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogCi0gICAgdmlzaXRvci5hcHBlbmRWYWx1ZXModGhp
c09iamVjdC0+bV9lcnJvcnMuZGF0YSgpLCB0aGlzT2JqZWN0LT5tX2Vycm9ycy5zaXplKCkpOwor
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5lcnJv
cnMsIGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSo+KG51bGxwdHIpLCBlcnJvcnMpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9CiAKIEFnZ3JlZ2F0ZUVycm9yKiBBZ2dyZWdh
dGVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgZXJyb3JzLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJj
ZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVy
cm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oCmlu
ZGV4IDhiODc1ZGQxYWEyMGMyYWMyMjI0OWZkYTlhMDAwNzk1ODA2NzdmMjQuLjU1MDNkOGU1OGUx
ZWQ2NzJjYjg5ZGNlNzBkOTcwMDFmMWViY2FiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaApAQCAtMzAsMTIgKzMwLDkgQEAKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNDZWxsLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKLSNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgogI2luY2x1ZGUgIlN1YnNwYWNlQWNjZXNzLmgiCiAjaW5jbHVkZSAiVk0uaCIKLSNpbmNsdWRl
ICJXcml0ZUJhcnJpZXIuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNjQsMjcgKzYxLDE5IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oRXJyb3JJbnN0YW5jZVR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2Vs
bCosIFNsb3RWaXNpdG9yJik7Ci0KICAgICBzdGF0aWMgQWdncmVnYXRlRXJyb3IqIGNyZWF0ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3JzLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9
IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCiAgICAgewotICAgICAg
ICBhdXRvKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEFnZ3JlZ2F0ZUVy
cm9yPih2bS5oZWFwKSkgQWdncmVnYXRlRXJyb3Iodm0sIHN0cnVjdHVyZSwgZXJyb3JzKTsKLSAg
ICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2Us
IGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOworICAgICAgICBhdXRvKiBpbnN0YW5j
ZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEFnZ3JlZ2F0ZUVycm9yPih2bS5oZWFwKSkg
QWdncmVnYXRlRXJyb3Iodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIGluc3RhbmNlLT5maW5pc2hD
cmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBlcnJvcnMsIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBl
LCB1c2VDdXJyZW50RnJhbWUpOwogICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCiAg
ICAgc3RhdGljIEFnZ3JlZ2F0ZUVycm9yKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBWTSYsIFN0
cnVjdHVyZSosIEpTVmFsdWUgZXJyb3JzLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVy
ID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJh
bWUgPSB0cnVlKTsKIAotICAgIGNvbnN0IFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4+JiBl
cnJvcnMoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgYmUgbW9k
aWZpZWQgYWZ0ZXIgY29uc3RydWN0aW9uLgotICAgICAgICByZXR1cm4gbV9lcnJvcnM7Ci0gICAg
fQorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IE1h
cmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNl
QXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1
cnJlbnRGcmFtZSA9IHRydWUpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEFnZ3JlZ2F0ZUVy
cm9yKFZNJiwgU3RydWN0dXJlKiwgY29uc3QgTWFya2VkQXJndW1lbnRCdWZmZXImIGVycm9ycyk7
Ci0KLSAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPFVua25vd24+PiBtX2Vycm9yczsKKyAgICBleHBs
aWNpdCBBZ2dyZWdhdGVFcnJvcihWTSYsIFN0cnVjdHVyZSopOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdh
dGVFcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dy
ZWdhdGVFcnJvclByb3RvdHlwZS5jcHAKaW5kZXggOWM2ZWRmMmMyYjNkZjNmNjk1ODU0MzljMjA4
NzY2ZjhmMjA5M2IxYS4uMTE5Y2Q1YTM5YjExOTdiYjliYjU2N2E1NmQ3NTJjYWE5YjlmZWNmNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0
ZUVycm9yUHJvdG90eXBlLmNwcApAQCAtMzMsNDEgKzMzLDE1IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhZ2dyZWdhdGVFcnJvclBy
b3RvdHlwZUFjY2Vzc29yRXJyb3JzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0KIEFn
Z3JlZ2F0ZUVycm9yUHJvdG90eXBlOjpBZ2dyZWdhdGVFcnJvclByb3RvdHlwZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQogewogfQogCi12
b2lkIEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGVy
cm9yVHlwZU5hbWUoRXJyb3JUeXBlOjpBZ2dyZWdhdGVFcnJvcikpOwogICAgIEFTU0VSVChpbmhl
cml0cyh2bSwgaW5mbygpKSk7Ci0KLSAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RSQU5T
SVRJT04oImVycm9ycyIsIGFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlQWNjZXNzb3JFcnJvcnMsIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7
Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYWdncmVnYXRlRXJyb3JQcm90b3R5
cGVBY2Nlc3NvckVycm9ycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOwotICAgIGF1dG8qIGFnZ3JlZ2F0ZUVycm9yID0g
anNEeW5hbWljQ2FzdDxBZ2dyZWdhdGVFcnJvcio+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICgh
YWdncmVnYXRlRXJyb3IpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJUaGUgQWdncmVnYXRlRXJyb3IucHJvdG90eXBlLmVycm9ycyBnZXR0ZXIg
Y2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgQWdncmVnYXRlRXJyb3Igb2JqZWN0Il9zKTsKLQotICAg
IGF1dG8qIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRy
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgdW5zaWduZWQg
aW5kZXggPSAwOwotICAgIGZvciAoY29uc3QgYXV0byYgZXJyb3IgOiBhZ2dyZWdhdGVFcnJvci0+
ZXJyb3JzKCkpIHsKLSAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3Qs
IGluZGV4KyssIGVycm9yLmdldCgpKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQWdncmVnYXRlRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmgKaW5kZXggMzc4MzBmZDg0ZmVlZjVj
MDdmZTBhY2MxM2MwMzU2YmUzMzg1NjUzMS4uZjhiMWI4YWZlMWQ3ODI5ZWY2ZWZhYWMyODY0ZmIx
NTA0NmRiYmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdn
cmVnYXRlRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5oCkBAIC01MiwxNiArNTIsMTYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICBz
dGF0aWMgQWdncmVnYXRlRXJyb3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIHsKICAgICAgICAgQWdncmVnYXRlRXJyb3JQcm90b3R5cGUqIHByb3Rv
dHlwZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
Pih2bS5oZWFwKSkgQWdncmVnYXRlRXJyb3JQcm90b3R5cGUodm0sIHN0cnVjdHVyZSk7Ci0gICAg
ICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gcHJvdG90eXBl
OwogICAgIH0KIAogcHJpdmF0ZToKICAgICBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZShWTSYsIFN0
cnVjdHVyZSopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCop
OworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmgKaW5kZXggOGRiYzZkN2FjMTg3YjcxOWQwNDUyNjU3MDI4MDk2MTYyMjlkNThkYy4uMTNiNGU1
ZTVmMGYwOGVjN2RkY2E0YzQ3MGQ3OWY3MTY2OWM2MTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0xMDEsNiArMTAxLDcg
QEAKICAgICBtYWNybyhkb3RBbGwpIFwKICAgICBtYWNybyhlbnVtZXJhYmxlKSBcCiAgICAgbWFj
cm8oZXJhKSBcCisgICAgbWFjcm8oZXJyb3JzKSBcCiAgICAgbWFjcm8oZXZhbCkgXAogICAgIG1h
Y3JvKGV2ZW50cykgXAogICAgIG1hY3JvKGV4ZWMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCBjZjNlMGFlNzllZWEzOTY0MmE4
ZGRmZTdiYTdmYTI5YmRhYThlZmExLi4yMjNmNDcxNWU2ZWMwNDNjZTA0MzJjZGE1YzE3NjU3NWE5
ZjFmNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC01MzEsNyArNTMxLDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdGlh
bGl6ZUVycm9yQ29uc3RydWN0b3IoTGF6eUNsYXNzU3RydWN0dXJlOjpJbml0aWFsaXplciYKIAog
dm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdGlhbGl6ZUFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3Io
TGF6eUNsYXNzU3RydWN0dXJlOjpJbml0aWFsaXplciYgaW5pdCkKIHsKLSAgICBpbml0LnNldFBy
b3RvdHlwZShBZ2dyZWdhdGVFcnJvclByb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIHRoaXMsIEFn
Z3JlZ2F0ZUVycm9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgdGhpcywgbV9l
cnJvclN0cnVjdHVyZS5wcm90b3R5cGUodGhpcykpKSk7CisgICAgaW5pdC5zZXRQcm90b3R5cGUo
QWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZShpbml0LnZtLCBBZ2dyZWdhdGVFcnJvclBy
b3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGluaXQudm0sIHRoaXMsIG1fZXJyb3JTdHJ1Y3R1cmUu
cHJvdG90eXBlKHRoaXMpKSkpOwogICAgIGluaXQuc2V0U3RydWN0dXJlKEFnZ3JlZ2F0ZUVycm9y
OjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgdGhpcywgaW5pdC5wcm90b3R5cGUpKTsKICAgICBp
bml0LnNldENvbnN0cnVjdG9yKEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShpbml0
LnZtLCBBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwg
dGhpcywgbV9lcnJvclN0cnVjdHVyZS5jb25zdHJ1Y3Rvcih0aGlzKSksIGpzQ2FzdDxBZ2dyZWdh
dGVFcnJvclByb3RvdHlwZSo+KGluaXQucHJvdG90eXBlKSkpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400878</attachid>
            <date>2020-06-02 19:10:31 -0700</date>
            <delta_ts>2020-06-12 18:15:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212677-20200602201030.patch</filename>
            <type>text/plain</type>
            <size>14758</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI0ZmYyMDRjNzgwODMzOTZlN2UzY2EyM2ExM2Vi
M2FiMDFlMjE1NzcuLmIzOTU0NmE0YTZmMjA1MmQxZTc4MWNlYzcxMzhlZGYwMjdmNDUyMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA2LTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGBlcnJvcnNgIGFu
IG93biBwcm9wZXJ0eSBvZiBgQWdncmVnYXRlRXJyb3JgIGluc3RlYWQgb2YgYSBwcm90b3R5cGUg
YWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMjY3NworCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAg
KiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmg6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9y
OjpkZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OnN1YnNw
YWNlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OmVycm9ycyk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHA6CisgICAgICAg
IChKU0M6OkFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcik6CisgICAgICAgIChKU0M6OkFn
Z3JlZ2F0ZUVycm9yOjpmaW5pc2hDcmVhdGlvbik6IEFkZGVkLgorICAgICAgICAoSlNDOjpBZ2dy
ZWdhdGVFcnJvcjo6dmlzaXRDaGlsZHJlbik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVF
cnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
QWNjZXNzb3JFcnJvcnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdGlhbGl6ZUFnZ3JlZ2F0
ZUVycm9yQ29uc3RydWN0b3IpOgorCisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAq
IHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAqIGhlYXAv
SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFs
aXplcnMpOgorICAgICAgICBSZW1vdmUgYGFnZ3JlZ2F0ZUVycm9yU3BhY2VgIHNpbmNlIGBBZ2dy
ZWdhdGVFcnJvcmAgZG9lc24ndCBhZGQgYW55IG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAg
ICBFbnN1cmUgdGhhdCBpdCBjYW4gc2hhcmUgYW4gYElzb1N1YnNwYWNlYCB3aXRoIGBFcnJvcklu
c3RhbmNlYC4KKworICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAg
ICAgQWRkIGBlcnJvcnNgLgorCiAyMDIwLTA2LTAxICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBHcmFwaGljczogc2hvdWxkIHVzZSB0
aGUgYGlkYCAobmFtZSkgb2YgdGhlIGFuaW1hdGlvbiBpZiBpdCBleGlzdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggM2Q3NWZjZmU4MzNiZjM4ZGM5NWVjZGUwODU4ZDhjNDIz
YjAwNjAwNC4uY2FhNjhkZTg3OGI3MzU4MWM2OGU0MzFmZDg3ODc0ZWVmYzBkNTM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTYxMSw4ICs2MTEsNiBAQCB2b2lkIEhlYXA6
OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMoKQogICAgICAgICBmaW5hbGl6ZU1hcmtl
ZFVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzPEpTV2Vha09iamVjdFJlZj4oKnZtKCkubV93ZWFrT2Jq
ZWN0UmVmU3BhY2UpOwogICAgIGlmICh2bSgpLm1fZXJyb3JJbnN0YW5jZVNwYWNlKQogICAgICAg
ICBmaW5hbGl6ZU1hcmtlZFVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzPEVycm9ySW5zdGFuY2U+KCp2
bSgpLm1fZXJyb3JJbnN0YW5jZVNwYWNlKTsKLSAgICBpZiAodm0oKS5tX2FnZ3JlZ2F0ZUVycm9y
U3BhY2UpCi0gICAgICAgIGZpbmFsaXplTWFya2VkVW5jb25kaXRpb25hbEZpbmFsaXplcnM8RXJy
b3JJbnN0YW5jZT4oKnZtKCkubV9hZ2dyZWdhdGVFcnJvclNwYWNlKTsKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKICAgICBpZiAodm0oKS5tX3dlYkFzc2VtYmx5Q29kZUJsb2NrU3BhY2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKaW5k
ZXggOTU1NTAzY2U5ZjM1ZGNmOWVhOWE0NTU2ZDVmZGM2OTdiMjIxY2IwZS4uNzU5YTViMjRhMGVk
MDg2ODBjY2FhNjM0MGQyZTk1ZDQ1MGI4MGZkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcApAQCAtMzUsMjEgKzM1LDE5IEBAIG5hbWVz
cGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gQWdncmVnYXRlRXJyb3I6OnNfaW5mbyA9IHsg
IkFnZ3JlZ2F0ZUVycm9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShBZ2dyZWdhdGVFcnJvcikgfTsKIAotQWdncmVnYXRlRXJyb3I6OkFnZ3Jl
Z2F0ZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyJiBlcnJvcnMpCitBZ2dyZWdhdGVFcnJvcjo6QWdncmVnYXRlRXJyb3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICAs
IG1fZXJyb3JzKGVycm9ycy5zaXplKCkpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBl
cnJvcnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fZXJyb3JzW2ldLnNldFdpdGhvdXRXcml0ZUJh
cnJpZXIoZXJyb3JzLmF0KGkpKTsKIH0KIAotdm9pZCBBZ2dyZWdhdGVFcnJvcjo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBBZ2dyZWdhdGVF
cnJvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3JzLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1
cnJlbnRGcmFtZSkKIHsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEFnZ3JlZ2F0ZUVy
cm9yKj4oY2VsbCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBp
bmZvKCkpOwotICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Cisg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5k
ZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZv
KCkpKTsKIAotICAgIHZpc2l0b3IuYXBwZW5kVmFsdWVzKHRoaXNPYmplY3QtPm1fZXJyb3JzLmRh
dGEoKSwgdGhpc09iamVjdC0+bV9lcnJvcnMuc2l6ZSgpKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5lcnJvcnMsIGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QXJyYXlB
bGxvY2F0aW9uUHJvZmlsZSo+KG51bGxwdHIpLCBlcnJvcnMpLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKIH0KIAogQWdncmVnYXRlRXJyb3IqIEFnZ3JlZ2F0ZUVycm9yOjpj
cmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIg
YXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmgKaW5kZXggOGI4NzVk
ZDFhYTIwYzJhYzIyMjQ5ZmRhOWEwMDA3OTU4MDY3N2YyNC4uODg1MjBjMWQ2NjQzNTVhYjA2ZTgy
ZWFmNTc4MzU4NGYzOTU5MzE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQWdncmVnYXRlRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvci5oCkBAIC0zMCwxMiArMzAsOCBAQAogI2luY2x1ZGUgIkpTQ0pTVmFs
dWUuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgot
I2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCi0jaW5jbHVk
ZSAiU3Vic3BhY2VBY2Nlc3MuaCIKICNpbmNsdWRlICJWTS5oIgotI2luY2x1ZGUgIldyaXRlQmFy
cmllci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00NiwxNyArNDIsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
QmFzZTo6bmVlZHNEZXN0cnVjdGlvbjsKIAotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxs
KiBjZWxsKQotICAgIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8QWdncmVnYXRlRXJyb3IqPihjZWxs
KS0+QWdncmVnYXRlRXJyb3I6On5BZ2dyZWdhdGVFcnJvcigpOwotICAgIH0KLQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgotICAgIHN0YXRpYyBJ
c29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHZt
LmFnZ3JlZ2F0ZUVycm9yU3BhY2U8bW9kZT4oKTsKLSAgICB9Ci0KICAgICBERUNMQVJFX0VYUE9S
VF9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC02NCwy
NyArNDksMjEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKLQogICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJv
ciogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1l
VHlwZSB0eXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAg
ICB7Ci0gICAgICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8
QWdncmVnYXRlRXJyb3I+KHZtLmhlYXApKSBBZ2dyZWdhdGVFcnJvcih2bSwgc3RydWN0dXJlLCBl
cnJvcnMpOwotICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVj
dCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgICAgIGF1
dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QWdncmVnYXRlRXJyb3I+
KHZtLmhlYXApKSBBZ2dyZWdhdGVFcnJvcih2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgaW5zdGFu
Y2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QsIGVycm9ycywgbWVzc2FnZSwgYXBw
ZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsK
ICAgICB9CiAKICAgICBzdGF0aWMgQWdncmVnYXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVj
dCosIFZNJiwgU3RydWN0dXJlKiwgSlNWYWx1ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgU291
cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IHRydWUpOwogCi0gICAgY29uc3QgVmVjdG9yPFdyaXRlQmFycmllcjxV
bmtub3duPj4mIGVycm9ycygpIGNvbnN0Ci0gICAgewotICAgICAgICAvLyBUaGlzIHNob3VsZCBu
ZXZlciBiZSBtb2RpZmllZCBhZnRlciBjb25zdHJ1Y3Rpb24uCi0gICAgICAgIHJldHVybiBtX2Vy
cm9yczsKLSAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgY29uc3QgTWFya2VkQXJndW1lbnRCdWZmZXImIGVycm9ycywgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcs
IGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
QWdncmVnYXRlRXJyb3IoVk0mLCBTdHJ1Y3R1cmUqLCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYgZXJyb3JzKTsKLQotICAgIFZlY3RvcjxXcml0ZUJhcnJpZXI8VW5rbm93bj4+IG1fZXJyb3Jz
OworICAgIGV4cGxpY2l0IEFnZ3JlZ2F0ZUVycm9yKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCitT
VEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShBZ2dyZWdhdGVFcnJvciwgQWdncmVn
YXRlRXJyb3I6OkJhc2UpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmNwcApp
bmRleCA5YzZlZGYyYzJiM2RmM2Y2OTU4NTQzOWMyMDg3NjZmOGYyMDkzYjFhLi4xMTljZDVhMzli
MTE5N2JiOWJiNTY3YTU2ZDc1MmNhYTliOWZlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0z
Myw0MSArMzMsMTUgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlQWNjZXNzb3JFcnJvcnMoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLQogQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OkFn
Z3JlZ2F0ZUVycm9yUHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
OiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CiB9CiAKLXZvaWQgQWdncmVnYXRlRXJyb3JQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
K3ZvaWQgQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsK
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZXJyb3JUeXBlTmFtZShFcnJvclR5cGU6OkFn
Z3JlZ2F0ZUVycm9yKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLQotICAg
IEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiZXJyb3JzIiwgYWdncmVnYXRl
RXJyb3JQcm90b3R5cGVBY2Nlc3NvckVycm9ycywgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhZ2dyZWdhdGVFcnJvclByb3RvdHlwZUFjY2Vzc29yRXJyb3JzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0KLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCk7Ci0gICAgYXV0byogYWdncmVnYXRlRXJyb3IgPSBqc0R5bmFtaWNDYXN0PEFnZ3JlZ2F0ZUVy
cm9yKj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCFhZ2dyZWdhdGVFcnJvcikKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlRoZSBBZ2dyZWdh
dGVFcnJvci5wcm90b3R5cGUuZXJyb3JzIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBB
Z2dyZWdhdGVFcnJvciBvYmplY3QiX3MpOwotCi0gICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0
RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7Ci0KLSAgICB1bnNpZ25lZCBpbmRleCA9IDA7Ci0gICAgZm9yIChjb25z
dCBhdXRvJiBlcnJvciA6IGFnZ3JlZ2F0ZUVycm9yLT5lcnJvcnMoKSkgewotICAgICAgICByZXN1
bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgrKywgZXJyb3IuZ2V0KCkpOwot
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLQotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvclBy
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JQ
cm90b3R5cGUuaAppbmRleCAzNzgzMGZkODRmZWVmNWMwN2ZlMGFjYzEzYzAzNTZiZTMzODU2NTMx
Li5mOGIxYjhhZmUxZDc4MjllZjZlZmFhYzI4NjRmYjE1MDQ2ZGJiYjQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
LmgKQEAgLTUyLDE2ICs1MiwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgQWdncmVnYXRl
RXJyb3JQcm90b3R5cGUqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvclByb3Rv
dHlwZSogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewogICAgICAg
ICBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8QWdncmVnYXRlRXJyb3JQcm90b3R5cGU+KHZtLmhlYXApKSBBZ2dyZWdhdGVFcnJv
clByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKLSAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVh
dGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlv
bih2bSk7CiAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgfQogCiBwcml2YXRlOgogICAg
IEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihWTSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA4ZGJjNmQ3YWMxODdiNzE5
ZDA0NTI2NTcwMjgwOTYxNjIyOWQ1OGRjLi4xM2I0ZTVlNWYwZjA4ZWM3ZGRjYTRjNDcwZDc5Zjcx
NjY5YzYxNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmgKQEAgLTEwMSw2ICsxMDEsNyBAQAogICAgIG1hY3JvKGRvdEFsbCkgXAog
ICAgIG1hY3JvKGVudW1lcmFibGUpIFwKICAgICBtYWNybyhlcmEpIFwKKyAgICBtYWNybyhlcnJv
cnMpIFwKICAgICBtYWNybyhldmFsKSBcCiAgICAgbWFjcm8oZXZlbnRzKSBcCiAgICAgbWFjcm8o
ZXhlYykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IGNmM2UwYWU3OWVlYTM5NjQyYThkZGZlN2JhN2ZhMjliZGFhOGVmYTEuLjIy
M2Y0NzE1ZTZlYzA0M2NlMDQzMmNkYTVjMTc2NTc1YTlmMWY3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUzMSw3ICs1MzEs
NyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0aWFsaXplRXJyb3JDb25zdHJ1Y3RvcihMYXp5
Q2xhc3NTdHJ1Y3R1cmU6OkluaXRpYWxpemVyJgogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0
aWFsaXplQWdncmVnYXRlRXJyb3JDb25zdHJ1Y3RvcihMYXp5Q2xhc3NTdHJ1Y3R1cmU6OkluaXRp
YWxpemVyJiBpbml0KQogewotICAgIGluaXQuc2V0UHJvdG90eXBlKEFnZ3JlZ2F0ZUVycm9yUHJv
dG90eXBlOjpjcmVhdGUoaW5pdC52bSwgdGhpcywgQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZShpbml0LnZtLCB0aGlzLCBtX2Vycm9yU3RydWN0dXJlLnByb3RvdHlwZSh0
aGlzKSkpKTsKKyAgICBpbml0LnNldFByb3RvdHlwZShBZ2dyZWdhdGVFcnJvclByb3RvdHlwZTo6
Y3JlYXRlKGluaXQudm0sIEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
aW5pdC52bSwgdGhpcywgbV9lcnJvclN0cnVjdHVyZS5wcm90b3R5cGUodGhpcykpKSk7CiAgICAg
aW5pdC5zZXRTdHJ1Y3R1cmUoQWdncmVnYXRlRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZt
LCB0aGlzLCBpbml0LnByb3RvdHlwZSkpOwogICAgIGluaXQuc2V0Q29uc3RydWN0b3IoQWdncmVn
YXRlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKGluaXQudm0sIEFnZ3JlZ2F0ZUVycm9yQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCB0aGlzLCBtX2Vycm9yU3RydWN0dXJlLmNv
bnN0cnVjdG9yKHRoaXMpKSwganNDYXN0PEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlKj4oaW5pdC5w
cm90b3R5cGUpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggZDUx
MGM0ZTRkOGQyYTI5YmM2MGRmZGFkOTViMmVhNzgyNmZhNzQyYi4uN2U5NzYyYTliNzkwODQzZGJi
Njk2YjgxMTQwMzNiYjIzM2NkOTA1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cApAQCAtMjg1LDcgKzI4NSw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFw
VHlwZSkKICAgICAsIGltbXV0YWJsZUJ1dHRlcmZseUhlYXBDZWxsVHlwZShtYWtlVW5pcXVlPEhl
YXBDZWxsVHlwZT4oQ2VsbEF0dHJpYnV0ZXMoRG9lc05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENl
bGw6OkpTQ2VsbFdpdGhJbnRlcmlvclBvaW50ZXJzKSkpCiAgICAgLCBjZWxsSGVhcENlbGxUeXBl
KG1ha2VVbmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3Ry
dWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkpCiAgICAgLCBkZXN0cnVjdGlibGVDZWxsSGVhcENl
bGxUeXBlKG1ha2VVbmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3Ry
dWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkpCi0gICAgLCBhZ2dyZWdhdGVFcnJvckhlYXBDZWxs
VHlwZShJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxBZ2dyZWdhdGVFcnJvcj4oKSkKICAgICAsIGFw
aUdsb2JhbE9iamVjdEhlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0FQSUds
b2JhbE9iamVjdD4oKSkKICAgICAsIGNhbGxiYWNrQ29uc3RydWN0b3JIZWFwQ2VsbFR5cGUoSXNv
SGVhcENlbGxUeXBlOjpjcmVhdGU8SlNDYWxsYmFja0NvbnN0cnVjdG9yPigpKQogICAgICwgY2Fs
bGJhY2tHbG9iYWxPYmplY3RIZWFwQ2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlND
YWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+KCkpCkBAIC0xNDIwLDcgKzE0MTksNiBAQCB2
b2lkIFZNOjplbnN1cmVTaGFkb3dDaGlja2VuKCkKICAgICB9CiAKIAotRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFnZ3JlZ2F0ZUVycm9yU3BhY2UsIGFnZ3JlZ2F0ZUVy
cm9ySGVhcENlbGxUeXBlLmdldCgpLCBBZ2dyZWdhdGVFcnJvcikKIERZTkFNSUNfSVNPX1NVQlNQ
QUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcGlHbG9iYWxPYmplY3RTcGFjZSwgYXBpR2xvYmFsT2Jq
ZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU0FQSUdsb2JhbE9iamVjdCkKIERZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcGlWYWx1ZVdyYXBwZXJTcGFjZSwgY2VsbEhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNBUElWYWx1ZVdyYXBwZXIpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coYXJyYXlCdWZmZXJTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNBcnJheUJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IGIwMGMy
MTVjODJlNjc3NWNjYThjZjNiMmFiYTU3NjQ4OTllN2EwODYuLmVjNWNlZTNmMTI5OWIzNDc4OTBm
N2E5OGRjZTU5ZWUyOTVmYjI0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAt
MzcyLDcgKzM3Miw2IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBl
PiBpbW11dGFibGVCdXR0ZXJmbHlIZWFwQ2VsbFR5cGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhl
YXBDZWxsVHlwZT4gY2VsbEhlYXBDZWxsVHlwZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENl
bGxUeXBlPiBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxJc29IZWFwQ2VsbFR5cGU+IGFnZ3JlZ2F0ZUVycm9ySGVhcENlbGxUeXBlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+IGFwaUdsb2JhbE9iamVjdEhlYXBDZWxsVHlwZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvSGVhcENlbGxUeXBlPiBjYWxsYmFja0NvbnN0cnVjdG9y
SGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+IGNhbGxi
YWNrR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBlOwpAQCAtNDk4LDcgKzQ5Nyw2IEBAIHB1YmxpYzoK
ICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKGpzY0NhbGxiYWNrRnVuY3Rp
b25TcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKGNhbGxiYWNr
QVBJV3JhcHBlckdsb2JhbE9iamVjdFNwYWNlKQogI2VuZGlmCi0gICAgRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUihhZ2dyZWdhdGVFcnJvclNwYWNlKQogICAgIERZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVIoYXBpR2xvYmFsT2JqZWN0U3BhY2UpCiAgICAgRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihhcGlWYWx1ZVdyYXBwZXJTcGFjZSkKICAgICBE
WU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKGFycmF5QnVmZmVyU3BhY2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401815</attachid>
            <date>2020-06-12 18:15:36 -0700</date>
            <delta_ts>2020-06-12 18:16:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212677-20200612181534.patch</filename>
            <type>text/plain</type>
            <size>19784</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDEyYTVjZmJmOGRhYzZjYTViYjUxM2Y0NjY1M2Ey
M2FkYzJhZDU2OTQuLjZlODBmYmM0NDFjMzdmNmY5ZjhhMzFjYzBkNDNjNTQzODliY2VhZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA2LTEyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGBlcnJvcnNgIGFu
IG93biBwcm9wZXJ0eSBvZiBgQWdncmVnYXRlRXJyb3JgIGluc3RlYWQgb2YgYSBwcm90b3R5cGUg
YWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMjY3NworCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAg
KiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmg6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9y
OjpkZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OnN1YnNw
YWNlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OmVycm9ycyk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHA6CisgICAgICAg
IChKU0M6OkFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcik6CisgICAgICAgIChKU0M6OkFn
Z3JlZ2F0ZUVycm9yOjpmaW5pc2hDcmVhdGlvbik6IEFkZGVkLgorICAgICAgICAoSlNDOjpBZ2dy
ZWdhdGVFcnJvcjo6dmlzaXRDaGlsZHJlbik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVF
cnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
QWNjZXNzb3JFcnJvcnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdGlhbGl6ZUFnZ3JlZ2F0
ZUVycm9yQ29uc3RydWN0b3IpOgorCisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAq
IHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAqIGhlYXAv
SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFs
aXplcnMpOgorICAgICAgICBSZW1vdmUgYGFnZ3JlZ2F0ZUVycm9yU3BhY2VgIHNpbmNlIGBBZ2dy
ZWdhdGVFcnJvcmAgZG9lc24ndCBhZGQgYW55IG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAg
ICBFbnN1cmUgdGhhdCBpdCBjYW4gc2hhcmUgYW4gYElzb1N1YnNwYWNlYCB3aXRoIGBFcnJvcklu
c3RhbmNlYC4KKworICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAg
ICAgQWRkIGBlcnJvcnNgLgorCiAyMDIwLTA2LTEyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2Fs
ZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBBc3luY0dlbmVyYXRvciBzaG91bGQgYXdhaXQgInJl
dHVybiIgY29tcGxldGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggNzVk
OGY5NTM0ZDJjMTU3MjMyODg0YzlhNDdlZDMzNjIxZjAxOWFiMi4uY2JhMWQxMjg0NWU0N2ZjNDUx
ZDA4NDk4MjZmMzA4YzEyZWRmNDFhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAK
QEAgLTYxMSw4ICs2MTEsNiBAQCB2b2lkIEhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFs
aXplcnMoKQogICAgICAgICBmaW5hbGl6ZU1hcmtlZFVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzPEpT
V2Vha09iamVjdFJlZj4oKnZtKCkubV93ZWFrT2JqZWN0UmVmU3BhY2UpOwogICAgIGlmICh2bSgp
Lm1fZXJyb3JJbnN0YW5jZVNwYWNlKQogICAgICAgICBmaW5hbGl6ZU1hcmtlZFVuY29uZGl0aW9u
YWxGaW5hbGl6ZXJzPEVycm9ySW5zdGFuY2U+KCp2bSgpLm1fZXJyb3JJbnN0YW5jZVNwYWNlKTsK
LSAgICBpZiAodm0oKS5tX2FnZ3JlZ2F0ZUVycm9yU3BhY2UpCi0gICAgICAgIGZpbmFsaXplTWFy
a2VkVW5jb25kaXRpb25hbEZpbmFsaXplcnM8RXJyb3JJbnN0YW5jZT4oKnZtKCkubV9hZ2dyZWdh
dGVFcnJvclNwYWNlKTsKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBpZiAodm0oKS5t
X3dlYkFzc2VtYmx5Q29kZUJsb2NrU3BhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKaW5kZXggOTU1NTAzY2U5ZjM1ZGNmOWVhOWE0NTU2
ZDVmZGM2OTdiMjIxY2IwZS4uNzU5YTViMjRhMGVkMDg2ODBjY2FhNjM0MGQyZTk1ZDQ1MGI4MGZk
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9y
LmNwcApAQCAtMzUsMjEgKzM1LDE5IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0lu
Zm8gQWdncmVnYXRlRXJyb3I6OnNfaW5mbyA9IHsgIkFnZ3JlZ2F0ZUVycm9yIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBZ2dyZWdhdGVFcnJv
cikgfTsKIAotQWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJvcnMpCitBZ2dyZWdh
dGVFcnJvcjo6QWdncmVnYXRlRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICAsIG1fZXJyb3JzKGVycm9ycy5zaXplKCkpCiB7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlcnJvcnMuc2l6ZSgpOyArK2kpCi0gICAgICAg
IG1fZXJyb3JzW2ldLnNldFdpdGhvdXRXcml0ZUJhcnJpZXIoZXJyb3JzLmF0KGkpKTsKIH0KIAot
dm9pZCBBZ2dyZWdhdGVFcnJvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQordm9pZCBBZ2dyZWdhdGVFcnJvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYgZXJyb3JzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
LCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKLSAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEFnZ3JlZ2F0ZUVycm9yKj4oY2VsbCk7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIEJhc2U6OnZpc2l0Q2hp
bGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0s
IGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7
CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKIAotICAgIHZpc2l0b3IuYXBwZW5k
VmFsdWVzKHRoaXNPYmplY3QtPm1fZXJyb3JzLmRhdGEoKSwgdGhpc09iamVjdC0+bV9lcnJvcnMu
c2l6ZSgpKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5lcnJvcnMsIGNvbnN0cnVjdEFycmF5KGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KG51bGxwdHIp
LCBlcnJvcnMpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIH0KIAogQWdn
cmVnYXRlRXJyb3IqIEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBlcnJvcnMsIEpT
VmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUs
IGJvb2wgdXNlQ3VycmVudEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yLmgKaW5kZXggOGI4NzVkZDFhYTIwYzJhYzIyMjQ5ZmRhOWEwMDA3OTU4
MDY3N2YyNC4uODg1MjBjMWQ2NjQzNTVhYjA2ZTgyZWFmNTc4MzU4NGYzOTU5MzE4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oCkBAIC0zMCwx
MiArMzAsOCBAQAogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlLmgiCi0jaW5jbHVkZSAiU3Vic3BhY2VBY2Nlc3MuaCIKICNpbmNs
dWRlICJWTS5oIgotI2luY2x1ZGUgIldyaXRlQmFycmllci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC00NiwxNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gQmFzZTo6bmVlZHNEZXN0cnVjdGlvbjsKIAot
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKiBjZWxsKQotICAgIHsKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8QWdncmVnYXRlRXJyb3IqPihjZWxsKS0+QWdncmVnYXRlRXJyb3I6On5BZ2dyZWdh
dGVFcnJvcigpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJz
cGFjZUFjY2VzcyBtb2RlPgotICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0m
IHZtKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHZtLmFnZ3JlZ2F0ZUVycm9yU3BhY2U8bW9kZT4o
KTsKLSAgICB9Ci0KICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC02NCwyNyArNDksMjEgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAg
IH0KIAotICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3Im
KTsKLQogICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvciogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IE1hcmtlZEFy
Z3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5k
ZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0gVHlwZU5vdGhpbmcsIGJv
b2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAgICB7Ci0gICAgICAgIGF1dG8qIGluc3RhbmNl
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QWdncmVnYXRlRXJyb3I+KHZtLmhlYXApKSBB
Z2dyZWdhdGVFcnJvcih2bSwgc3RydWN0dXJlLCBlcnJvcnMpOwotICAgICAgICBpbnN0YW5jZS0+
ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUs
IHVzZUN1cnJlbnRGcmFtZSk7CisgICAgICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxs
LCBhbGxvY2F0ZUNlbGw8QWdncmVnYXRlRXJyb3I+KHZtLmhlYXApKSBBZ2dyZWdhdGVFcnJvcih2
bSwgc3RydWN0dXJlKTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIGVycm9ycywgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFt
ZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKICAgICBzdGF0aWMgQWdncmVn
YXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFZNJiwgU3RydWN0dXJlKiwgSlNWYWx1
ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50
aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOwogCi0g
ICAgY29uc3QgVmVjdG9yPFdyaXRlQmFycmllcjxVbmtub3duPj4mIGVycm9ycygpIGNvbnN0Ci0g
ICAgewotICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBtb2RpZmllZCBhZnRlciBjb25z
dHJ1Y3Rpb24uCi0gICAgICAgIHJldHVybiBtX2Vycm9yczsKLSAgICB9CisgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgTWFya2VkQXJndW1lbnRCdWZm
ZXImIGVycm9ycywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxw
dHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1
ZSk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQWdncmVnYXRlRXJyb3IoVk0mLCBTdHJ1Y3R1
cmUqLCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3JzKTsKLQotICAgIFZlY3RvcjxX
cml0ZUJhcnJpZXI8VW5rbm93bj4+IG1fZXJyb3JzOworICAgIGV4cGxpY2l0IEFnZ3JlZ2F0ZUVy
cm9yKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCitTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9T
SEFSQUJMRShBZ2dyZWdhdGVFcnJvciwgQWdncmVnYXRlRXJyb3I6OkJhc2UpOworCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmNwcAppbmRleCA5YzZlZGYyYzJiM2RmM2Y2OTU4NTQz
OWMyMDg3NjZmOGYyMDkzYjFhLi4xMTljZDVhMzliMTE5N2JiOWJiNTY3YTU2ZDc1MmNhYTliOWZl
Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVF
cnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdn
cmVnYXRlRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0zMyw0MSArMzMsMTUgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFnZ3JlZ2F0ZUVy
cm9yUHJvdG90eXBlQWNjZXNzb3JFcnJvcnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LQogQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OkFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CiB9
CiAKLXZvaWQgQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgQWdncmVnYXRlRXJyb3JQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSwgZXJyb3JUeXBlTmFtZShFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLQotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRf
VFJBTlNJVElPTigiZXJyb3JzIiwgYWdncmVnYXRlRXJyb3JQcm90b3R5cGVBY2Nlc3NvckVycm9y
cywgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vz
c29yKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhZ2dyZWdhdGVFcnJvclBy
b3RvdHlwZUFjY2Vzc29yRXJyb3JzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7Ci0gICAgYXV0byogYWdncmVnYXRlRXJy
b3IgPSBqc0R5bmFtaWNDYXN0PEFnZ3JlZ2F0ZUVycm9yKj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAg
aWYgKCFhZ2dyZWdhdGVFcnJvcikKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIlRoZSBBZ2dyZWdhdGVFcnJvci5wcm90b3R5cGUuZXJyb3JzIGdl
dHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBBZ2dyZWdhdGVFcnJvciBvYmplY3QiX3MpOwot
Ci0gICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51
bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICB1bnNp
Z25lZCBpbmRleCA9IDA7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBlcnJvciA6IGFnZ3JlZ2F0ZUVy
cm9yLT5lcnJvcnMoKSkgewotICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgrKywgZXJyb3IuZ2V0KCkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotICAgIH0KLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JQcm90b3R5cGUuaAppbmRleCAzNzgzMGZkODRm
ZWVmNWMwN2ZlMGFjYzEzYzAzNTZiZTMzODU2NTMxLi5mOGIxYjhhZmUxZDc4MjllZjZlZmFhYzI4
NjRmYjE1MDQ2ZGJiYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmgKQEAgLTUyLDE2ICs1MiwxNiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgQWdncmVnYXRlRXJyb3JQcm90b3R5cGUqIGNyZWF0ZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQor
ICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewogICAgICAgICBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZSog
cHJvdG90eXBlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QWdncmVnYXRlRXJyb3JQcm90
b3R5cGU+KHZtLmhlYXApKSBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsK
LSAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSk7CiAgICAgICAgIHJldHVybiBwcm90
b3R5cGU7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlKFZN
JiwgU3RydWN0dXJlKik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2Jq
ZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaAppbmRleCA4NTU4YmFiOTBjZTVkOGJiM2RkMTA4ZTA4NDVmOGE1Mjk0ZjQ1ZjQ1Li4x
NjhlZmVkYTE0ZDQ2MTA1MjYwNzVhZmRlYmFjOWFkYmEyNTI2NmJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTEwMSw2ICsx
MDEsNyBAQAogICAgIG1hY3JvKGRvdEFsbCkgXAogICAgIG1hY3JvKGVudW1lcmFibGUpIFwKICAg
ICBtYWNybyhlcmEpIFwKKyAgICBtYWNybyhlcnJvcnMpIFwKICAgICBtYWNybyhldmFsKSBcCiAg
ICAgbWFjcm8oZXZlbnRzKSBcCiAgICAgbWFjcm8oZXhlYykgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDIzZjQwY2U0YjNlNjBm
M2I4OGE4M2FiZDVlNmJkMjM1NDliMjhkMzcuLjU5MzU3OWRlMjNjMzRkZDU3NDY5ZTg3ODBjNzAw
YTgyOWJmODFjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojpp
bml0aWFsaXplRXJyb3JDb25zdHJ1Y3RvcihMYXp5Q2xhc3NTdHJ1Y3R1cmU6OkluaXRpYWxpemVy
JgogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0aWFsaXplQWdncmVnYXRlRXJyb3JDb25zdHJ1
Y3RvcihMYXp5Q2xhc3NTdHJ1Y3R1cmU6OkluaXRpYWxpemVyJiBpbml0KQogewotICAgIGluaXQu
c2V0UHJvdG90eXBlKEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlOjpjcmVhdGUoaW5pdC52bSwgdGhp
cywgQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCB0aGlz
LCBtX2Vycm9yU3RydWN0dXJlLnByb3RvdHlwZSh0aGlzKSkpKTsKKyAgICBpbml0LnNldFByb3Rv
dHlwZShBZ2dyZWdhdGVFcnJvclByb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIEFnZ3JlZ2F0ZUVy
cm9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgdGhpcywgbV9lcnJvclN0cnVj
dHVyZS5wcm90b3R5cGUodGhpcykpKSk7CiAgICAgaW5pdC5zZXRTdHJ1Y3R1cmUoQWdncmVnYXRl
RXJyb3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCB0aGlzLCBpbml0LnByb3RvdHlwZSkpOwog
ICAgIGluaXQuc2V0Q29uc3RydWN0b3IoQWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KGluaXQudm0sIEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0
LnZtLCB0aGlzLCBtX2Vycm9yU3RydWN0dXJlLmNvbnN0cnVjdG9yKHRoaXMpKSwganNDYXN0PEFn
Z3JlZ2F0ZUVycm9yUHJvdG90eXBlKj4oaW5pdC5wcm90b3R5cGUpKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYzdmNTg5ZWMyNjkyMjExMWQ3NGNlN2Y3YTA2ZTky
ZWZmZGMyN2U5MC4uZmIwYjVkZTMwZjAwNzk2MzIxNzFmNTJjNmQzNzg0NTQ4Y2M2ZDYyNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMjg1LDcgKzI4NSw2IEBAIFZNOjpW
TShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIGltbXV0YWJsZUJ1dHRl
cmZseUhlYXBDZWxsVHlwZShtYWtlVW5pcXVlPEhlYXBDZWxsVHlwZT4oQ2VsbEF0dHJpYnV0ZXMo
RG9lc05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbFdpdGhJbnRlcmlvclBvaW50
ZXJzKSkpCiAgICAgLCBjZWxsSGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SGVhcENlbGxUeXBlPihD
ZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkp
CiAgICAgLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SGVhcENlbGxU
eXBlPihDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkp
Ci0gICAgLCBhZ2dyZWdhdGVFcnJvckhlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5cGU6OmNyZWF0
ZTxBZ2dyZWdhdGVFcnJvcj4oKSkKICAgICAsIGFwaUdsb2JhbE9iamVjdEhlYXBDZWxsVHlwZShJ
c29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0FQSUdsb2JhbE9iamVjdD4oKSkKICAgICAsIGNhbGxi
YWNrQ29uc3RydWN0b3JIZWFwQ2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNDYWxs
YmFja0NvbnN0cnVjdG9yPigpKQogICAgICwgY2FsbGJhY2tHbG9iYWxPYmplY3RIZWFwQ2VsbFR5
cGUoSXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVj
dD4+KCkpCkBAIC0xNDIwLDcgKzE0MTksNiBAQCB2b2lkIFZNOjplbnN1cmVTaGFkb3dDaGlja2Vu
KCkKICAgICB9CiAKIAotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFn
Z3JlZ2F0ZUVycm9yU3BhY2UsIGFnZ3JlZ2F0ZUVycm9ySGVhcENlbGxUeXBlLmdldCgpLCBBZ2dy
ZWdhdGVFcnJvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcGlH
bG9iYWxPYmplY3RTcGFjZSwgYXBpR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU0FQ
SUdsb2JhbE9iamVjdCkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhh
cGlWYWx1ZVdyYXBwZXJTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBUElWYWx1ZVdy
YXBwZXIpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYXJyYXlCdWZm
ZXJTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBcnJheUJ1ZmZlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCmluZGV4IDlhOTYyYzQ4Y2U2Nzg5MGNmMWMyYTNlY2I1NTY5NDUw
OWVkNzZjMGQuLjQxMDg4ZDg2NDAyYjI0MTMyNmExODlhN2U5NDBmYWQwZmZiMWFhNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMzcyLDcgKzM3Miw2IEBAIHB1YmxpYzoKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBpbW11dGFibGVCdXR0ZXJmbHlIZWFwQ2Vs
bFR5cGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBDZWxsVHlwZT4gY2VsbEhlYXBDZWxsVHlw
ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBkZXN0cnVjdGlibGVDZWxsSGVh
cENlbGxUeXBlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+IGFnZ3JlZ2F0
ZUVycm9ySGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+
IGFwaUdsb2JhbE9iamVjdEhlYXBDZWxsVHlwZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvSGVh
cENlbGxUeXBlPiBjYWxsYmFja0NvbnN0cnVjdG9ySGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+IGNhbGxiYWNrR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBl
OwpAQCAtNDk4LDcgKzQ5Nyw2IEBAIHB1YmxpYzoKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSKGpzY0NhbGxiYWNrRnVuY3Rpb25TcGFjZSkKICAgICBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSKGNhbGxiYWNrQVBJV3JhcHBlckdsb2JhbE9iamVjdFNwYWNl
KQogI2VuZGlmCi0gICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihhZ2dyZWdh
dGVFcnJvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIoYXBp
R2xvYmFsT2JqZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
UihhcGlWYWx1ZVdyYXBwZXJTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKGFycmF5QnVmZmVyU3BhY2UpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBi
L0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAzZjZmYzkxYTkxYmU3YTk1MWExYWJkOGE1ZTg4MWQw
YTc5Yjk2OGUuLmYwYTQzNzA3OWI4M2E5MGMyMmMxZDkwOGU3ODgyNWU2YzU5OTg0NDkgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjAtMDYtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgYGVycm9yc2AgYW4gb3duIHByb3BlcnR5IG9mIGBBZ2dyZWdhdGVFcnJv
cmAgaW5zdGVhZCBvZiBhIHByb3RvdHlwZSBhY2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvQWdncmVnYXRlRXJyb3Itb3duLXBy
b3BlcnR5LWVycm9ycy5qczogQWRkZWQuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sOgorICAgICAgICBNYXJrIDkgdGVzdHMgYXMgZmFpbGluZyB3aGlsZSB3YWl0aW5nIGZv
ciB0ZXN0MjYyIHRvIHVwZGF0ZSB0byBtYXRjaCB0aGUgc3BlYy4KKwogMjAyMC0wNi0xMiAgQWxl
eGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgQXN5bmNHZW5l
cmF0b3Igc2hvdWxkIGF3YWl0ICJyZXR1cm4iIGNvbXBsZXRpb25zCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9BZ2dyZWdhdGVFcnJvci1vd24tcHJvcGVydHktZXJyb3JzLmpzIGIvSlNUZXN0
cy9zdHJlc3MvQWdncmVnYXRlRXJyb3Itb3duLXByb3BlcnR5LWVycm9ycy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMTIwZjQ4ZWJmNWI4MTNhMDc1ZDY1NzMxNjQwYTg0YWM0NzcxMGM2Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvQWdncmVnYXRlRXJyb3Itb3duLXByb3BlcnR5LWVycm9ycy5q
cwpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
YmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworbGV0IGFnZ3JlZ2F0ZUVycm9yID0gbmV3IEFn
Z3JlZ2F0ZUVycm9yKFswLCAxLCAyXSk7CisKK2xldCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihhZ2dyZWdhdGVFcnJvciwgImVycm9ycyIpOworc2hvdWxkQmUo
ZGVzY3JpcHRvci53cml0YWJsZSwgdHJ1ZSk7CitzaG91bGRCZShkZXNjcmlwdG9yLmVudW1lcmFi
bGUsIGZhbHNlKTsKK3Nob3VsZEJlKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlLCB0cnVlKTsKK3No
b3VsZEJlKEFycmF5LmlzQXJyYXkoZGVzY3JpcHRvci52YWx1ZSksIHRydWUpOworc2hvdWxkQmUo
ZGVzY3JpcHRvci52YWx1ZS5sZW5ndGgsIDMpOworZm9yIChsZXQgaSA9IDA7IGkgPCBkZXNjcmlw
dG9yLnZhbHVlLmxlbmd0aDsgKytpKQorICAgIHNob3VsZEJlKGRlc2NyaXB0b3IudmFsdWVbaV0s
IGkpOworCitzaG91bGRCZSgiZXJyb3JzIiBpbiBBZ2dyZWdhdGVFcnJvci5wcm90b3R5cGUsIGZh
bHNlKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA5M2U3YjMzNzI0MjI1YWJiODM5
ZGViZGIwYjMzOTQwNDE4MDYxZGY2Li45ZTA4Mjg5MjBjZGU2NzhmYjlhZWE3N2ZlMjBlZTYwNmNi
OTM0MGZiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysr
IGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC05MjEsNiArOTIxLDMzIEBA
IHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmluZy91bmljb2RlLmpzOgog
dGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9yZXZpdmVyLW9iamVjdC1ub24tY29uZmlndXJhYmxl
LXByb3AtY3JlYXRlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqsyMsK7LCDCqzLCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzIywrssIMKrMsK7KSB0byBiZSB0cnVlJwordGVz
dC9idWlsdC1pbnMvTmF0aXZlRXJyb3JzL0FnZ3JlZ2F0ZUVycm9yL3Byb3RvdHlwZS9lcnJvcnMv
aW52b2tlZC1hcy1hY2Nlc3Nvci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3Qv
YnVpbHQtaW5zL05hdGl2ZUVycm9ycy9BZ2dyZWdhdGVFcnJvci9wcm90b3R5cGUvZXJyb3JzL2lu
dm9rZWQtYXMtZnVuYy5qczoKKyAgZGVmYXVsdDogIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5v
dCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
IgorICBzdHJpY3QgbW9kZTogIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoIgordGVzdC9idWls
dC1pbnMvTmF0aXZlRXJyb3JzL0FnZ3JlZ2F0ZUVycm9yL3Byb3RvdHlwZS9lcnJvcnMvbGVuZ3Ro
LmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnZGVzYy5nZXQnKSIKKyAgc3RyaWN0IG1vZGU6ICJUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdkZXNjLmdldCcpIgordGVzdC9idWls
dC1pbnMvTmF0aXZlRXJyb3JzL0FnZ3JlZ2F0ZUVycm9yL3Byb3RvdHlwZS9lcnJvcnMvbmFtZS5q
czoKKyAgZGVmYXVsdDogIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ2Rlc2MuZ2V0JykiCisgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnZGVzYy5nZXQnKSIKK3Rlc3QvYnVpbHQt
aW5zL05hdGl2ZUVycm9ycy9BZ2dyZWdhdGVFcnJvci9wcm90b3R5cGUvZXJyb3JzL3Byb3AtZGVz
Yy5qczoKKyAgZGVmYXVsdDogIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ2Rlc2Muc2V0JykiCisgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnZGVzYy5zZXQnKSIKK3Rlc3QvYnVp
bHQtaW5zL05hdGl2ZUVycm9ycy9BZ2dyZWdhdGVFcnJvci9wcm90b3R5cGUvZXJyb3JzL3JldHVy
bi1mcm9tLWl0ZXJhYmxlLWVycm9ycy5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogY3Jl
YXRlcyBhIG5ldyBhcnJheSBldmVyeXRpbWUgaXQgZ2V0cyB0aGUgdmFsdWVzIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCqzMsNsK7LCDCqzMsNsK7KSB0byBiZSBmYWxzZScKKyAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IGNyZWF0ZXMgYSBuZXcgYXJyYXkgZXZlcnl0aW1lIGl0IGdldHMgdGhlIHZh
bHVlcyBFeHBlY3RlZCBTYW1lVmFsdWUowqszLDbCuywgwqszLDbCuykgdG8gYmUgZmFsc2UnCit0
ZXN0L2J1aWx0LWlucy9OYXRpdmVFcnJvcnMvQWdncmVnYXRlRXJyb3IvcHJvdG90eXBlL2Vycm9y
cy9yZXR1cm4tbmV3LWFycmF5LWZyb20tbGlzdC5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogY3JlYXRlcyBhIG5ldyBhcnJheSBldmVyeXRpbWUgaXQgZ2V0cyB0aGUgdmFsdWVzIEV4cGVj
dGVkIFNhbWVWYWx1ZSjCq8K7LCDCq8K7KSB0byBiZSBmYWxzZScKKyAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IGNyZWF0ZXMgYSBuZXcgYXJyYXkgZXZlcnl0aW1lIGl0IGdldHMgdGhlIHZh
bHVlcyBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqvCuykgdG8gYmUgZmFsc2UnCit0ZXN0L2J1
aWx0LWlucy9OYXRpdmVFcnJvcnMvQWdncmVnYXRlRXJyb3IvcHJvdG90eXBlL2Vycm9ycy90aGlz
LWhhcy1uby10eXBlZGFycmF5bmFtZS1pbnRlcm5hbC5qczoKKyAgZGVmYXVsdDogIlR5cGVFcnJv
cjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoIgorICBzdHJpY3QgbW9kZTogIlR5cGVFcnJvcjogdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoIgordGVzdC9idWlsdC1pbnMvTmF0aXZlRXJyb3JzL0FnZ3JlZ2F0ZUVycm9yL3Byb3Rv
dHlwZS9lcnJvcnMvdGhpcy1pcy1ub3Qtb2JqZWN0LmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcigiCisgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcigiCiB0ZXN0L2J1aWx0LWlucy9PYmplY3QvYXNzaWduL3N0cmluZ3MtYW5kLXN5bWJvbC1v
cmRlci1wcm94eS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2Zvbywg
MCwgU3ltYm9sKCldIGFuZCBbU3ltYm9sKCksIGZvbywgMF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250
ZW50cy4gJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2ZvbywgMCwg
U3ltYm9sKCldIGFuZCBbU3ltYm9sKCksIGZvbywgMF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50
cy4gJwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401816</attachid>
            <date>2020-06-12 18:16:59 -0700</date>
            <delta_ts>2020-06-13 13:40:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212677-20200612181657.patch</filename>
            <type>text/plain</type>
            <size>19783</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDEyYTVjZmJmOGRhYzZjYTViYjUxM2Y0NjY1M2Ey
M2FkYzJhZDU2OTQuLjZlODBmYmM0NDFjMzdmNmY5ZjhhMzFjYzBkNDNjNTQzODliY2VhZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA2LTEyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGBlcnJvcnNgIGFu
IG93biBwcm9wZXJ0eSBvZiBgQWdncmVnYXRlRXJyb3JgIGluc3RlYWQgb2YgYSBwcm90b3R5cGUg
YWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMjY3NworCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAg
KiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmg6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9y
OjpkZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OnN1YnNw
YWNlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OmVycm9ycyk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHA6CisgICAgICAg
IChKU0M6OkFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcik6CisgICAgICAgIChKU0M6OkFn
Z3JlZ2F0ZUVycm9yOjpmaW5pc2hDcmVhdGlvbik6IEFkZGVkLgorICAgICAgICAoSlNDOjpBZ2dy
ZWdhdGVFcnJvcjo6dmlzaXRDaGlsZHJlbik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVF
cnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBl
QWNjZXNzb3JFcnJvcnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdGlhbGl6ZUFnZ3JlZ2F0
ZUVycm9yQ29uc3RydWN0b3IpOgorCisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAq
IHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAqIGhlYXAv
SGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFs
aXplcnMpOgorICAgICAgICBSZW1vdmUgYGFnZ3JlZ2F0ZUVycm9yU3BhY2VgIHNpbmNlIGBBZ2dy
ZWdhdGVFcnJvcmAgZG9lc24ndCBhZGQgYW55IG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAg
ICBFbnN1cmUgdGhhdCBpdCBjYW4gc2hhcmUgYW4gYElzb1N1YnNwYWNlYCB3aXRoIGBFcnJvcklu
c3RhbmNlYC4KKworICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAg
ICAgQWRkIGBlcnJvcnNgLgorCiAyMDIwLTA2LTEyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2Fs
ZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBBc3luY0dlbmVyYXRvciBzaG91bGQgYXdhaXQgInJl
dHVybiIgY29tcGxldGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggNzVk
OGY5NTM0ZDJjMTU3MjMyODg0YzlhNDdlZDMzNjIxZjAxOWFiMi4uY2JhMWQxMjg0NWU0N2ZjNDUx
ZDA4NDk4MjZmMzA4YzEyZWRmNDFhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAK
QEAgLTYxMSw4ICs2MTEsNiBAQCB2b2lkIEhlYXA6OmZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFs
aXplcnMoKQogICAgICAgICBmaW5hbGl6ZU1hcmtlZFVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzPEpT
V2Vha09iamVjdFJlZj4oKnZtKCkubV93ZWFrT2JqZWN0UmVmU3BhY2UpOwogICAgIGlmICh2bSgp
Lm1fZXJyb3JJbnN0YW5jZVNwYWNlKQogICAgICAgICBmaW5hbGl6ZU1hcmtlZFVuY29uZGl0aW9u
YWxGaW5hbGl6ZXJzPEVycm9ySW5zdGFuY2U+KCp2bSgpLm1fZXJyb3JJbnN0YW5jZVNwYWNlKTsK
LSAgICBpZiAodm0oKS5tX2FnZ3JlZ2F0ZUVycm9yU3BhY2UpCi0gICAgICAgIGZpbmFsaXplTWFy
a2VkVW5jb25kaXRpb25hbEZpbmFsaXplcnM8RXJyb3JJbnN0YW5jZT4oKnZtKCkubV9hZ2dyZWdh
dGVFcnJvclNwYWNlKTsKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBpZiAodm0oKS5t
X3dlYkFzc2VtYmx5Q29kZUJsb2NrU3BhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKaW5kZXggOTU1NTAzY2U5ZjM1ZGNmOWVhOWE0NTU2
ZDVmZGM2OTdiMjIxY2IwZS4uNzU5YTViMjRhMGVkMDg2ODBjY2FhNjM0MGQyZTk1ZDQ1MGI4MGZk
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9y
LmNwcApAQCAtMzUsMjEgKzM1LDE5IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0lu
Zm8gQWdncmVnYXRlRXJyb3I6OnNfaW5mbyA9IHsgIkFnZ3JlZ2F0ZUVycm9yIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBZ2dyZWdhdGVFcnJv
cikgfTsKIAotQWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGNvbnN0IE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBlcnJvcnMpCitBZ2dyZWdh
dGVFcnJvcjo6QWdncmVnYXRlRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICAsIG1fZXJyb3JzKGVycm9ycy5zaXplKCkpCiB7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlcnJvcnMuc2l6ZSgpOyArK2kpCi0gICAgICAg
IG1fZXJyb3JzW2ldLnNldFdpdGhvdXRXcml0ZUJhcnJpZXIoZXJyb3JzLmF0KGkpKTsKIH0KIAot
dm9pZCBBZ2dyZWdhdGVFcnJvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQordm9pZCBBZ2dyZWdhdGVFcnJvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYgZXJyb3JzLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
LCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKLSAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEFnZ3JlZ2F0ZUVycm9yKj4oY2VsbCk7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIEJhc2U6OnZpc2l0Q2hp
bGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0s
IGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7
CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKIAotICAgIHZpc2l0b3IuYXBwZW5k
VmFsdWVzKHRoaXNPYmplY3QtPm1fZXJyb3JzLmRhdGEoKSwgdGhpc09iamVjdC0+bV9lcnJvcnMu
c2l6ZSgpKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5lcnJvcnMsIGNvbnN0cnVjdEFycmF5KGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSo+KG51bGxwdHIp
LCBlcnJvcnMpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIH0KIAogQWdn
cmVnYXRlRXJyb3IqIEFnZ3JlZ2F0ZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBlcnJvcnMsIEpT
VmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUs
IGJvb2wgdXNlQ3VycmVudEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yLmgKaW5kZXggOGI4NzVkZDFhYTIwYzJhYzIyMjQ5ZmRhOWEwMDA3OTU4
MDY3N2YyNC4uODg1MjBjMWQ2NjQzNTVhYjA2ZTgyZWFmNTc4MzU4NGYzOTU5MzE4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5oCkBAIC0zMCwx
MiArMzAsOCBAQAogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlLmgiCi0jaW5jbHVkZSAiU3Vic3BhY2VBY2Nlc3MuaCIKICNpbmNs
dWRlICJWTS5oIgotI2luY2x1ZGUgIldyaXRlQmFycmllci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC00NiwxNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gQmFzZTo6bmVlZHNEZXN0cnVjdGlvbjsKIAot
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKiBjZWxsKQotICAgIHsKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8QWdncmVnYXRlRXJyb3IqPihjZWxsKS0+QWdncmVnYXRlRXJyb3I6On5BZ2dyZWdh
dGVFcnJvcigpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJz
cGFjZUFjY2VzcyBtb2RlPgotICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0m
IHZtKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHZtLmFnZ3JlZ2F0ZUVycm9yU3BhY2U8bW9kZT4o
KTsKLSAgICB9Ci0KICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC02NCwyNyArNDksMjEgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAg
IH0KIAotICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3Im
KTsKLQogICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvciogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IE1hcmtlZEFy
Z3VtZW50QnVmZmVyJiBlcnJvcnMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5k
ZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0gVHlwZU5vdGhpbmcsIGJv
b2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAgICB7Ci0gICAgICAgIGF1dG8qIGluc3RhbmNl
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QWdncmVnYXRlRXJyb3I+KHZtLmhlYXApKSBB
Z2dyZWdhdGVFcnJvcih2bSwgc3RydWN0dXJlLCBlcnJvcnMpOwotICAgICAgICBpbnN0YW5jZS0+
ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUs
IHVzZUN1cnJlbnRGcmFtZSk7CisgICAgICAgIGF1dG8qIGluc3RhbmNlID0gbmV3IChOb3ROdWxs
LCBhbGxvY2F0ZUNlbGw8QWdncmVnYXRlRXJyb3I+KHZtLmhlYXApKSBBZ2dyZWdhdGVFcnJvcih2
bSwgc3RydWN0dXJlKTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIGVycm9ycywgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFt
ZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKICAgICBzdGF0aWMgQWdncmVn
YXRlRXJyb3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFZNJiwgU3RydWN0dXJlKiwgSlNWYWx1
ZSBlcnJvcnMsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50
aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOwogCi0g
ICAgY29uc3QgVmVjdG9yPFdyaXRlQmFycmllcjxVbmtub3duPj4mIGVycm9ycygpIGNvbnN0Ci0g
ICAgewotICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBiZSBtb2RpZmllZCBhZnRlciBjb25z
dHJ1Y3Rpb24uCi0gICAgICAgIHJldHVybiBtX2Vycm9yczsKLSAgICB9CisgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgTWFya2VkQXJndW1lbnRCdWZm
ZXImIGVycm9ycywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxw
dHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1
ZSk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQWdncmVnYXRlRXJyb3IoVk0mLCBTdHJ1Y3R1
cmUqLCBjb25zdCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgZXJyb3JzKTsKLQotICAgIFZlY3RvcjxX
cml0ZUJhcnJpZXI8VW5rbm93bj4+IG1fZXJyb3JzOworICAgIGV4cGxpY2l0IEFnZ3JlZ2F0ZUVy
cm9yKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCitTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9T
SEFSQUJMRShBZ2dyZWdhdGVFcnJvciwgQWdncmVnYXRlRXJyb3I6OkJhc2UpOworCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmNwcAppbmRleCA5YzZlZGYyYzJiM2RmM2Y2OTU4NTQz
OWMyMDg3NjZmOGYyMDkzYjFhLi4xMTljZDVhMzliMTE5N2JiOWJiNTY3YTU2ZDc1MmNhYTliOWZl
Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVF
cnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdn
cmVnYXRlRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0zMyw0MSArMzMsMTUgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFnZ3JlZ2F0ZUVy
cm9yUHJvdG90eXBlQWNjZXNzb3JFcnJvcnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LQogQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OkFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CiB9
CiAKLXZvaWQgQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgQWdncmVnYXRlRXJyb3JQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSwgZXJyb3JUeXBlTmFtZShFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLQotICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRf
VFJBTlNJVElPTigiZXJyb3JzIiwgYWdncmVnYXRlRXJyb3JQcm90b3R5cGVBY2Nlc3NvckVycm9y
cywgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vz
c29yKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhZ2dyZWdhdGVFcnJvclBy
b3RvdHlwZUFjY2Vzc29yRXJyb3JzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7Ci0gICAgYXV0byogYWdncmVnYXRlRXJy
b3IgPSBqc0R5bmFtaWNDYXN0PEFnZ3JlZ2F0ZUVycm9yKj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAg
aWYgKCFhZ2dyZWdhdGVFcnJvcikKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIlRoZSBBZ2dyZWdhdGVFcnJvci5wcm90b3R5cGUuZXJyb3JzIGdl
dHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBBZ2dyZWdhdGVFcnJvciBvYmplY3QiX3MpOwot
Ci0gICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51
bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICB1bnNp
Z25lZCBpbmRleCA9IDA7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBlcnJvciA6IGFnZ3JlZ2F0ZUVy
cm9yLT5lcnJvcnMoKSkgewotICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgrKywgZXJyb3IuZ2V0KCkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotICAgIH0KLQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JQcm90b3R5cGUuaAppbmRleCAzNzgzMGZkODRm
ZWVmNWMwN2ZlMGFjYzEzYzAzNTZiZTMzODU2NTMxLi5mOGIxYjhhZmUxZDc4MjllZjZlZmFhYzI4
NjRmYjE1MDQ2ZGJiYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlLmgKQEAgLTUyLDE2ICs1MiwxNiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgQWdncmVnYXRlRXJyb3JQcm90b3R5cGUqIGNyZWF0ZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQor
ICAgIHN0YXRpYyBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewogICAgICAgICBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZSog
cHJvdG90eXBlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QWdncmVnYXRlRXJyb3JQcm90
b3R5cGU+KHZtLmhlYXApKSBBZ2dyZWdhdGVFcnJvclByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsK
LSAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSk7CiAgICAgICAgIHJldHVybiBwcm90
b3R5cGU7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlKFZN
JiwgU3RydWN0dXJlKik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2Jq
ZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaAppbmRleCA4NTU4YmFiOTBjZTVkOGJiM2RkMTA4ZTA4NDVmOGE1Mjk0ZjQ1ZjQ1Li4x
NjhlZmVkYTE0ZDQ2MTA1MjYwNzVhZmRlYmFjOWFkYmEyNTI2NmJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTEwMSw2ICsx
MDEsNyBAQAogICAgIG1hY3JvKGRvdEFsbCkgXAogICAgIG1hY3JvKGVudW1lcmFibGUpIFwKICAg
ICBtYWNybyhlcmEpIFwKKyAgICBtYWNybyhlcnJvcnMpIFwKICAgICBtYWNybyhldmFsKSBcCiAg
ICAgbWFjcm8oZXZlbnRzKSBcCiAgICAgbWFjcm8oZXhlYykgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDIzZjQwY2U0YjNlNjBm
M2I4OGE4M2FiZDVlNmJkMjM1NDliMjhkMzcuLjU5MzU3OWRlMjNjMzRkZDU3NDY5ZTg3ODBjNzAw
YTgyOWJmODFjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojpp
bml0aWFsaXplRXJyb3JDb25zdHJ1Y3RvcihMYXp5Q2xhc3NTdHJ1Y3R1cmU6OkluaXRpYWxpemVy
JgogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0aWFsaXplQWdncmVnYXRlRXJyb3JDb25zdHJ1
Y3RvcihMYXp5Q2xhc3NTdHJ1Y3R1cmU6OkluaXRpYWxpemVyJiBpbml0KQogewotICAgIGluaXQu
c2V0UHJvdG90eXBlKEFnZ3JlZ2F0ZUVycm9yUHJvdG90eXBlOjpjcmVhdGUoaW5pdC52bSwgdGhp
cywgQWdncmVnYXRlRXJyb3JQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCB0aGlz
LCBtX2Vycm9yU3RydWN0dXJlLnByb3RvdHlwZSh0aGlzKSkpKTsKKyAgICBpbml0LnNldFByb3Rv
dHlwZShBZ2dyZWdhdGVFcnJvclByb3RvdHlwZTo6Y3JlYXRlKGluaXQudm0sIEFnZ3JlZ2F0ZUVy
cm9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoaW5pdC52bSwgdGhpcywgbV9lcnJvclN0cnVj
dHVyZS5wcm90b3R5cGUodGhpcykpKSk7CiAgICAgaW5pdC5zZXRTdHJ1Y3R1cmUoQWdncmVnYXRl
RXJyb3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0LnZtLCB0aGlzLCBpbml0LnByb3RvdHlwZSkpOwog
ICAgIGluaXQuc2V0Q29uc3RydWN0b3IoQWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KGluaXQudm0sIEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShpbml0
LnZtLCB0aGlzLCBtX2Vycm9yU3RydWN0dXJlLmNvbnN0cnVjdG9yKHRoaXMpKSwganNDYXN0PEFn
Z3JlZ2F0ZUVycm9yUHJvdG90eXBlKj4oaW5pdC5wcm90b3R5cGUpKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYzdmNTg5ZWMyNjkyMjExMWQ3NGNlN2Y3YTA2ZTky
ZWZmZGMyN2U5MC4uZmIwYjVkZTMwZjAwNzk2MzIxNzFmNTJjNmQzNzg0NTQ4Y2M2ZDYyNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMjg1LDcgKzI4NSw2IEBAIFZNOjpW
TShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIGltbXV0YWJsZUJ1dHRl
cmZseUhlYXBDZWxsVHlwZShtYWtlVW5pcXVlPEhlYXBDZWxsVHlwZT4oQ2VsbEF0dHJpYnV0ZXMo
RG9lc05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbFdpdGhJbnRlcmlvclBvaW50
ZXJzKSkpCiAgICAgLCBjZWxsSGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SGVhcENlbGxUeXBlPihD
ZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkp
CiAgICAgLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SGVhcENlbGxU
eXBlPihDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkp
Ci0gICAgLCBhZ2dyZWdhdGVFcnJvckhlYXBDZWxsVHlwZShJc29IZWFwQ2VsbFR5cGU6OmNyZWF0
ZTxBZ2dyZWdhdGVFcnJvcj4oKSkKICAgICAsIGFwaUdsb2JhbE9iamVjdEhlYXBDZWxsVHlwZShJ
c29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0FQSUdsb2JhbE9iamVjdD4oKSkKICAgICAsIGNhbGxi
YWNrQ29uc3RydWN0b3JIZWFwQ2VsbFR5cGUoSXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNDYWxs
YmFja0NvbnN0cnVjdG9yPigpKQogICAgICwgY2FsbGJhY2tHbG9iYWxPYmplY3RIZWFwQ2VsbFR5
cGUoSXNvSGVhcENlbGxUeXBlOjpjcmVhdGU8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVj
dD4+KCkpCkBAIC0xNDIwLDcgKzE0MTksNiBAQCB2b2lkIFZNOjplbnN1cmVTaGFkb3dDaGlja2Vu
KCkKICAgICB9CiAKIAotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFn
Z3JlZ2F0ZUVycm9yU3BhY2UsIGFnZ3JlZ2F0ZUVycm9ySGVhcENlbGxUeXBlLmdldCgpLCBBZ2dy
ZWdhdGVFcnJvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcGlH
bG9iYWxPYmplY3RTcGFjZSwgYXBpR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU0FQ
SUdsb2JhbE9iamVjdCkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhh
cGlWYWx1ZVdyYXBwZXJTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBUElWYWx1ZVdy
YXBwZXIpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYXJyYXlCdWZm
ZXJTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBcnJheUJ1ZmZlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCmluZGV4IDlhOTYyYzQ4Y2U2Nzg5MGNmMWMyYTNlY2I1NTY5NDUw
OWVkNzZjMGQuLjQxMDg4ZDg2NDAyYjI0MTMyNmExODlhN2U5NDBmYWQwZmZiMWFhNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtMzcyLDcgKzM3Miw2IEBAIHB1YmxpYzoKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBpbW11dGFibGVCdXR0ZXJmbHlIZWFwQ2Vs
bFR5cGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBDZWxsVHlwZT4gY2VsbEhlYXBDZWxsVHlw
ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENlbGxUeXBlPiBkZXN0cnVjdGlibGVDZWxsSGVh
cENlbGxUeXBlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+IGFnZ3JlZ2F0
ZUVycm9ySGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+
IGFwaUdsb2JhbE9iamVjdEhlYXBDZWxsVHlwZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvSGVh
cENlbGxUeXBlPiBjYWxsYmFja0NvbnN0cnVjdG9ySGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU+IGNhbGxiYWNrR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBl
OwpAQCAtNDk4LDcgKzQ5Nyw2IEBAIHB1YmxpYzoKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSKGpzY0NhbGxiYWNrRnVuY3Rpb25TcGFjZSkKICAgICBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSKGNhbGxiYWNrQVBJV3JhcHBlckdsb2JhbE9iamVjdFNwYWNl
KQogI2VuZGlmCi0gICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihhZ2dyZWdh
dGVFcnJvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIoYXBp
R2xvYmFsT2JqZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
UihhcGlWYWx1ZVdyYXBwZXJTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKGFycmF5QnVmZmVyU3BhY2UpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBi
L0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAzZjZmYzkxYTkxYmU3YTk1MWExYWJkOGE1ZTg4MWQw
YTc5Yjk2OGUuLmM3ODkwMjcxZjczNzM5YzFhNDUzYzM1MWFlM2ExOTNmMmU1MGRjNzggMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjAtMDYtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgYGVycm9yc2AgYW4gb3duIHByb3BlcnR5IG9mIGBBZ2dyZWdhdGVFcnJv
cmAgaW5zdGVhZCBvZiBhIHByb3RvdHlwZSBhY2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WXVzdWtlIFN1enVraS4KKworICAgICAgICAqIHN0cmVzcy9BZ2dyZWdhdGVFcnJvci1vd24tcHJv
cGVydHktZXJyb3JzLmpzOiBBZGRlZC4KKworICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWw6CisgICAgICAgIE1hcmsgOSB0ZXN0cyBhcyBmYWlsaW5nIHdoaWxlIHdhaXRpbmcgZm9y
IHRlc3QyNjIgdG8gdXBkYXRlIHRvIG1hdGNoIHRoZSBzcGVjLgorCiAyMDIwLTA2LTEyICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBBc3luY0dlbmVy
YXRvciBzaG91bGQgYXdhaXQgInJldHVybiIgY29tcGxldGlvbnMKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL0FnZ3JlZ2F0ZUVycm9yLW93bi1wcm9wZXJ0eS1lcnJvcnMuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9BZ2dyZWdhdGVFcnJvci1vd24tcHJvcGVydHktZXJyb3JzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQxMjBmNDhlYmY1YjgxM2EwNzVkNjU3MzE2NDBhODRhYzQ3NzEwYzYKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9BZ2dyZWdhdGVFcnJvci1vd24tcHJvcGVydHktZXJyb3JzLmpz
CkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdi
YWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitsZXQgYWdncmVnYXRlRXJyb3IgPSBuZXcgQWdn
cmVnYXRlRXJyb3IoWzAsIDEsIDJdKTsKKworbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGFnZ3JlZ2F0ZUVycm9yLCAiZXJyb3JzIik7CitzaG91bGRCZShk
ZXNjcmlwdG9yLndyaXRhYmxlLCB0cnVlKTsKK3Nob3VsZEJlKGRlc2NyaXB0b3IuZW51bWVyYWJs
ZSwgZmFsc2UpOworc2hvdWxkQmUoZGVzY3JpcHRvci5jb25maWd1cmFibGUsIHRydWUpOworc2hv
dWxkQmUoQXJyYXkuaXNBcnJheShkZXNjcmlwdG9yLnZhbHVlKSwgdHJ1ZSk7CitzaG91bGRCZShk
ZXNjcmlwdG9yLnZhbHVlLmxlbmd0aCwgMyk7Citmb3IgKGxldCBpID0gMDsgaSA8IGRlc2NyaXB0
b3IudmFsdWUubGVuZ3RoOyArK2kpCisgICAgc2hvdWxkQmUoZGVzY3JpcHRvci52YWx1ZVtpXSwg
aSk7CisKK3Nob3VsZEJlKCJlcnJvcnMiIGluIEFnZ3JlZ2F0ZUVycm9yLnByb3RvdHlwZSwgZmFs
c2UpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IDkzZTdiMzM3MjQyMjVhYmI4Mzlk
ZWJkYjBiMzM5NDA0MTgwNjFkZjYuLjllMDgyODkyMGNkZTY3OGZiOWFlYTc3ZmUyMGVlNjA2Y2I5
MzQwZmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysg
Yi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTkyMSw2ICs5MjEsMzMgQEAg
dGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL3VuaWNvZGUuanM6CiB0
ZXN0L2J1aWx0LWlucy9KU09OL3BhcnNlL3Jldml2ZXItb2JqZWN0LW5vbi1jb25maWd1cmFibGUt
cHJvcC1jcmVhdGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCqzIywrssIMKrMsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMjLCuywgwqsywrspIHRvIGJlIHRydWUnCit0ZXN0
L2J1aWx0LWlucy9OYXRpdmVFcnJvcnMvQWdncmVnYXRlRXJyb3IvcHJvdG90eXBlL2Vycm9ycy9p
bnZva2VkLWFzLWFjY2Vzc29yLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwordGVzdC9i
dWlsdC1pbnMvTmF0aXZlRXJyb3JzL0FnZ3JlZ2F0ZUVycm9yL3Byb3RvdHlwZS9lcnJvcnMvaW52
b2tlZC1hcy1mdW5jLmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcigi
CisgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcigiCit0ZXN0L2J1aWx0
LWlucy9OYXRpdmVFcnJvcnMvQWdncmVnYXRlRXJyb3IvcHJvdG90eXBlL2Vycm9ycy9sZW5ndGgu
anM6CisgIGRlZmF1bHQ6ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdkZXNjLmdldCcpIgorICBzdHJpY3QgbW9kZTogIlR5cGVFcnJvcjogdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2Rlc2MuZ2V0JykiCit0ZXN0L2J1aWx0
LWlucy9OYXRpdmVFcnJvcnMvQWdncmVnYXRlRXJyb3IvcHJvdG90eXBlL2Vycm9ycy9uYW1lLmpz
OgorICBkZWZhdWx0OiAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnZGVzYy5nZXQnKSIKKyAgc3RyaWN0IG1vZGU6ICJUeXBlRXJyb3I6IHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdkZXNjLmdldCcpIgordGVzdC9idWlsdC1p
bnMvTmF0aXZlRXJyb3JzL0FnZ3JlZ2F0ZUVycm9yL3Byb3RvdHlwZS9lcnJvcnMvcHJvcC1kZXNj
LmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnZGVzYy5zZXQnKSIKKyAgc3RyaWN0IG1vZGU6ICJUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdkZXNjLnNldCcpIgordGVzdC9idWls
dC1pbnMvTmF0aXZlRXJyb3JzL0FnZ3JlZ2F0ZUVycm9yL3Byb3RvdHlwZS9lcnJvcnMvcmV0dXJu
LWZyb20taXRlcmFibGUtZXJyb3JzLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBjcmVh
dGVzIGEgbmV3IGFycmF5IGV2ZXJ5dGltZSBpdCBnZXRzIHRoZSB2YWx1ZXMgRXhwZWN0ZWQgU2Ft
ZVZhbHVlKMKrMyw2wrssIMKrMyw2wrspIHRvIGJlIGZhbHNlJworICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogY3JlYXRlcyBhIG5ldyBhcnJheSBldmVyeXRpbWUgaXQgZ2V0cyB0aGUgdmFs
dWVzIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzMsNsK7LCDCqzMsNsK7KSB0byBiZSBmYWxzZScKK3Rl
c3QvYnVpbHQtaW5zL05hdGl2ZUVycm9ycy9BZ2dyZWdhdGVFcnJvci9wcm90b3R5cGUvZXJyb3Jz
L3JldHVybi1uZXctYXJyYXktZnJvbS1saXN0LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBjcmVhdGVzIGEgbmV3IGFycmF5IGV2ZXJ5dGltZSBpdCBnZXRzIHRoZSB2YWx1ZXMgRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrwrssIMKrwrspIHRvIGJlIGZhbHNlJworICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogY3JlYXRlcyBhIG5ldyBhcnJheSBldmVyeXRpbWUgaXQgZ2V0cyB0aGUgdmFs
dWVzIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq8K7KSB0byBiZSBmYWxzZScKK3Rlc3QvYnVp
bHQtaW5zL05hdGl2ZUVycm9ycy9BZ2dyZWdhdGVFcnJvci9wcm90b3R5cGUvZXJyb3JzL3RoaXMt
aGFzLW5vLXR5cGVkYXJyYXluYW1lLWludGVybmFsLmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcigiCisgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcigiCit0ZXN0L2J1aWx0LWlucy9OYXRpdmVFcnJvcnMvQWdncmVnYXRlRXJyb3IvcHJvdG90
eXBlL2Vycm9ycy90aGlzLWlzLW5vdC1vYmplY3QuanM6CisgIGRlZmF1bHQ6ICJUeXBlRXJyb3I6
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKCIKKyAgc3RyaWN0IG1vZGU6ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKCIKIHRlc3QvYnVpbHQtaW5zL09iamVjdC9hc3NpZ24vc3RyaW5ncy1hbmQtc3ltYm9sLW9y
ZGVyLXByb3h5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbZm9vLCAw
LCBTeW1ib2woKV0gYW5kIFtTeW1ib2woKSwgZm9vLCAwXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbZm9vLCAwLCBT
eW1ib2woKV0gYW5kIFtTeW1ib2woKSwgZm9vLCAwXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRz
LiAnCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>