<?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>203818</bug_id>
          
          <creation_ts>2019-11-04 11:03:01 -0800</creation_ts>
          <short_desc>Proxy&apos;s [[OwnPropertyKeys]] is incorrect in DontEnumPropertiesMode::Exclude</short_desc>
          <delta_ts>2020-01-06 11:32:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=205772</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>189034</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</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>1587061</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-11-04 11:03:01 -0800</bug_when>
    <thetext>1. If Object.keys is called on Proxy w/o &quot;ownKeys&quot; trap, filtering DontEnum properties should be observed by &quot;getOwnPropertyDescriptor&quot; trap.

ECMA262:
  https://tc39.es/ecma262/#sec-enumerableownpropertynames (step 4)

Test262:
  https://test262.report/browse/built-ins/Object/keys/property-traps-order-with-proxied-array.js

2. If Object.keys is called on Proxy with &quot;ownKeys&quot; trap, non-enumerable properties of Proxy&apos;s target are ignored during invariants validation.

ECMA262:
  https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys (step 11)

Test262:
  https://test262.report/browse/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-1.js
  https://test262.report/browse/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587092</commentid>
    <comment_count>1</comment_count>
      <attachid>382761</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-11-04 12:48:57 -0800</bug_when>
    <thetext>Created attachment 382761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587150</commentid>
    <comment_count>2</comment_count>
      <attachid>382773</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-11-04 14:15:48 -0800</bug_when>
    <thetext>Created attachment 382773
Patch

Adjust test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587166</commentid>
    <comment_count>3</comment_count>
      <attachid>382773</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-04 14:40:21 -0800</bug_when>
    <thetext>Comment on attachment 382773
Patch

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

Nice! I put r- because I found a bug.

&gt; Source/JavaScriptCore/runtime/ProxyObject.cpp:1081
&gt; +    ASSERT(enumerationMode.includeJSObjectProperties());

&quot;getOwnPropertyNames &quot; is a part of public interface of JSObject. So, we allow clients to call this &quot;getOwnPropertyNames&quot; function directly. Like,

object-&gt;methodTable(vm)-&gt;getOwnPropertyNames(object, ...);

So, this ASSERT is not correct. Can you fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587565</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-11-05 15:26:13 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #3)
&gt; Comment on attachment 382773 [details]
&gt; Patch
&gt; 
&gt; So, this ASSERT is not correct. Can you fix it?

Thank you for review! Allow me to expand on this ASSERT:

An object getOwnPropertyNames() is called on with JSObjectPropertiesMode::Exclude should be
checked beforehand as this mode is special. The only usage of JSObjectPropertiesMode::Exclude
in JSC codebase is in JSObject::getGenericPropertyNames, which is used only in JSPropertyNameEnumerator
on objects passing Structure::canAccessPropertiesQuicklyForEnumeration check (ProxyObjects don&apos;t).

I&apos;ve added this ASSERT because it doesn&apos;t quite make sense to call ProxyObject::getOwnPropertyNames with
JSObjectPropertiesMode::Exclude and it is hard to do so by accident. ProxyObject::getGenericPropertyNames
and friends are also public API, yet they have RELEASE_ASSERT_NOT_REACHED.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587912</commentid>
    <comment_count>5</comment_count>
      <attachid>382961</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-11-06 14:18:46 -0800</bug_when>
    <thetext>Created attachment 382961
Patch

Remove ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592052</commentid>
    <comment_count>6</comment_count>
      <attachid>382961</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-11-20 10:32:53 -0800</bug_when>
    <thetext>Comment on attachment 382961
Patch

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

r=me with nit.

&gt; Source/JavaScriptCore/runtime/ProxyObject.cpp:944
&gt; +    EnumerationMode enumerationMode(DontEnumPropertiesMode::Include);

Nit: It seems like we only use this in one place below. Can you just pass DontEnumPropertiesMode::Include to getOwnPropertyNames directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592091</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-11-20 12:06:42 -0800</bug_when>
    <thetext>(In reply to Keith Miller from comment #6)
&gt; Comment on attachment 382961 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382961&amp;action=review
&gt; 
&gt; r=me with nit.
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/ProxyObject.cpp:944
&gt; &gt; +    EnumerationMode enumerationMode(DontEnumPropertiesMode::Include);
&gt; 
&gt; Nit: It seems like we only use this in one place below. Can you just pass
&gt; DontEnumPropertiesMode::Include to getOwnPropertyNames directly?

1. We also use `enumerationMode` in ProxyObject.cpp:1011 (invariants validation).
2. We also invoke `performGetOwnPropertyNames` in ProxyObject.cpp:1063 (we can&apos;t pass EnumerationMode there).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603115</commentid>
    <comment_count>8</comment_count>
      <attachid>386860</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-01-06 10:28:05 -0800</bug_when>
    <thetext>Created attachment 386860
Patch

Set reviewer and mark two more tests as passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603168</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-06 11:30:20 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 386860:

storage/indexeddb/modern/index-cursor-3.html bug 205818 (author: beidson@apple.com)
transitions/default-timing-function.html bug 138901 (authors: dino@apple.com and graouts@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603171</commentid>
    <comment_count>10</comment_count>
      <attachid>386860</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-06 11:31:08 -0800</bug_when>
    <thetext>Comment on attachment 386860
Patch

Clearing flags on attachment: 386860

Committed r254070: &lt;https://trac.webkit.org/changeset/254070&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603172</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-06 11:31:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603173</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-06 11:32:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/58348548&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382761</attachid>
            <date>2019-11-04 12:48:57 -0800</date>
            <delta_ts>2019-11-04 14:15:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203818-20191104224856.patch</filename>
            <type>text/plain</type>
            <size>10507</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIwMDcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDE5LTExLTA0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBQcm94eSdzIFtbT3duUHJvcGVydHlLZXlzXV0gaXMgaW5j
b3JyZWN0IGluIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzgxOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbDogTWFyayA2IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAxOS0xMS0wMyAgVGFkZXUg
WmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBMTEludEdlbmVyYXRvciBz
aG91bGQgbm90IGFsbG9jYXRlIHRlbXBvcmFyaWVzIGluIGJldHdlZW4gdmFyaWFibGVzCkluZGV4
OiBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCShyZXZpc2lvbiAyNTIwMDMpCisrKyBKU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTEwNDIsMTUgKzEw
NDIsNiBAQCB0ZXN0L2J1aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93CiB0ZXN0L2J1
aWx0LWlucy9PYmplY3QvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2NvbnNpc3RlbnQtdmFs
dWUtcmVnZXhwLWRvbGxhcjEuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFNhbWVWYWx1ZSjDgsKrw4LCuywgw4LCq3jDgsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqvDgsK7LCDDgsKreMOCwrsp
IHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9wcm9wZXJ0eS10cmFwcy1v
cmRlci13aXRoLXByb3hpZWQtYXJyYXkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFtvd25LZXlzLCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JdIGFuZCBbb3duS2V5c10g
dG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW293bktleXMsIGdldE93blByb3BlcnR5RGVzY3JpcHRvcl0gYW5kIFtvd25L
ZXlzXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3Qv
a2V5cy9wcm94eS1ub24tZW51bWVyYWJsZS1wcm9wLWludmFyaWFudC0xLmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5v
IGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvT2JqZWN0L2tleXMvcHJveHktbm9uLWVu
dW1lcmFibGUtcHJvcC1pbnZhcmlhbnQtMi5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRo
cm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5
cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
IHRlc3QvYnVpbHQtaW5zL09iamVjdC9wcm90by1mcm9tLWN0b3ItcmVhbG0uanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29iamVjdCBPYmplY3Rd
w4LCuywgw4LCq1tvYmplY3QgT2JqZWN0XcOCwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUow4LCq1tvYmplY3QgT2JqZWN0XcOC
wrssIMOCwqtbb2JqZWN0IE9iamVjdF3DgsK7KSB0byBiZSB0cnVlJwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTIwMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMTEtMDQgIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFByb3h5J3Mg
W1tPd25Qcm9wZXJ0eUtleXNdXSBpcyBpbmNvcnJlY3QgaW4gRG9udEVudW1Qcm9wZXJ0aWVzTW9k
ZTo6RXhjbHVkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzODE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBjaGFuZ2UgZml4ZXMgdHdvIHNwZWMgY29tcGF0aWJpbGl0eSBpc3N1ZXM6CisKKyAg
ICAgICAgMS4gSWYgT2JqZWN0LmtleXMgaXMgY2FsbGVkIG9uIFByb3h5IHcvbyAib3duS2V5cyIg
dHJhcCwgZmlsdGVyaW5nIG5vbi1lbnVtZXJhYmxlCisgICAgICAgIHByb3BlcnRpZXMgYXJlIG5v
dCBvYnNlcnZlZCBieSAiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiB0cmFwLgorICAgICAgICAo
c3RlcCA0IG9mIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZW51bWVyYWJsZW93bnByb3Bl
cnR5bmFtZXMpCisKKyAgICAgICAgMi4gSWYgT2JqZWN0LmtleXMgaXMgY2FsbGVkIG9uIFByb3h5
IHdpdGggIm93bktleXMiIHRyYXAsIG5vbi1lbnVtZXJhYmxlCisgICAgICAgIHByb3BlcnRpZXMg
b2YgUHJveHkncyB0YXJnZXQgYXJlIGlnbm9yZWQgZHVyaW5nIGludmFyaWFudHMgdmFsaWRhdGlv
bi4KKyAgICAgICAgKHN0ZXAgMTEgb2YgaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm94
eS1vYmplY3QtaW50ZXJuYWwtbWV0aG9kcy1hbmQtaW50ZXJuYWwtc2xvdHMtb3ducHJvcGVydHlr
ZXlzKQorCisgICAgICAgIEluc3RlYWQgb2YgZXh0cmFjdGluZyBEb250RW51bSBmaWx0ZXJpbmcg
dG8gbGFtYmRhIGZ1bmN0aW9uLCBhIHdyYXBwZXIgbWV0aG9kIGZvcgorICAgICAgICBQcm94eU9i
amVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMgd2FzIGludHJvZHVjZWQgdG8gYXZvaWQg
Y3JlYXRpbmcgJgorICAgICAgICBmaWxsaW5nIGludGVybWVkaWF0ZSBQcm9wZXJ0eU5hbWVBcnJh
eSBpbnN0YW5jZSAoaW4gY2FzZSBvZiBEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKQor
ICAgICAgICBhbmQgYXZvaWQgaGF2aW5nIGlubmVyIEVudW1lcmF0aW9uTW9kZSBpbiBQcm94eU9i
amVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMuCisKKyAgICAgICAgKiBydW50aW1lL1By
b3h5T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Q
cm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25F
bnVtZXJhYmxlUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5T2JqZWN0Lmg6CisKIDIw
MTktMTEtMDMgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAg
TExJbnRHZW5lcmF0b3Igc2hvdWxkIG5vdCBhbGxvY2F0ZSB0ZW1wb3JhcmllcyBpbiBiZXR3ZWVu
IHZhcmlhYmxlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
T2JqZWN0LmNwcAkocmV2aXNpb24gMjUyMDAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJveHlPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MTksNyArOTE5LDcgQEAg
Ym9vbCBQcm94eU9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYgogICAgIHJldHVybiB0aGlz
T2JqZWN0LT5wZXJmb3JtRGVmaW5lT3duUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotdm9pZCBQcm94eU9iamVjdDo6cGVy
Zm9ybUdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBlbnVtZXJhdGlv
bk1vZGUpCit2b2lkIFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1l
cykKIHsKICAgICBOT19UQUlMX0NBTExTKCk7CiAKQEAgLTk0MSw2ICs5NDEsNyBAQCB2b2lkIFBy
b3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOCiAgICAgSlNWYWx1ZSBvd25LZXlzTWV0
aG9kID0gaGFuZGxlci0+Z2V0TWV0aG9kKGdsb2JhbE9iamVjdCwgY2FsbERhdGEsIGNhbGxUeXBl
LCBtYWtlSWRlbnRpZmllcih2bSwgIm93bktleXMiKSwgIidvd25LZXlzJyBwcm9wZXJ0eSBvZiBh
IFByb3h5J3MgaGFuZGxlciBzaG91bGQgYmUgY2FsbGFibGUiX3MpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgSlNPYmplY3QqIHRhcmdldCA9IHRoaXMtPnRh
cmdldCgpOworICAgIEVudW1lcmF0aW9uTW9kZSBlbnVtZXJhdGlvbk1vZGUoRG9udEVudW1Qcm9w
ZXJ0aWVzTW9kZTo6SW5jbHVkZSk7CiAgICAgaWYgKG93bktleXNNZXRob2QuaXNVbmRlZmluZWQo
KSkgewogICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHRhcmdldC0+bWV0aG9kVGFi
bGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWVzLCBlbnVtZXJhdGlvbk1vZGUpOwpAQCAtOTUwLDEwICs5NTEsOSBAQCB2b2lkIFByb3h5
T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIg
YXJndW1lbnRzOwogICAgIGFyZ3VtZW50cy5hcHBlbmQodGFyZ2V0KTsKICAgICBBU1NFUlQoIWFy
Z3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOwotICAgIEpTVmFsdWUgYXJyYXlMaWtlT2JqZWN0ID0g
Y2FsbChnbG9iYWxPYmplY3QsIG93bktleXNNZXRob2QsIGNhbGxUeXBlLCBjYWxsRGF0YSwgaGFu
ZGxlciwgYXJndW1lbnRzKTsKKyAgICBKU1ZhbHVlIHRyYXBSZXN1bHQgPSBjYWxsKGdsb2JhbE9i
amVjdCwgb3duS2V5c01ldGhvZCwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVu
dHMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKLSAgICBQcm9w
ZXJ0eU5hbWVBcnJheSB0cmFwUmVzdWx0KHZtLCBwcm9wZXJ0eU5hbWVzLnByb3BlcnR5TmFtZU1v
ZGUoKSwgcHJvcGVydHlOYW1lcy5wcml2YXRlU3ltYm9sTW9kZSgpKTsKICAgICBIYXNoU2V0PFVu
aXF1ZWRTdHJpbmdJbXBsKj4gdW5jaGVja2VkUmVzdWx0S2V5czsKICAgICB7CiAgICAgICAgIEhh
c2hTZXQ8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPj4gc2VlbktleXM7CkBAIC05OTUsMTIgKzk5
NSwxMiBAQCB2b2lkIFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGRvbnRFeGl0RWFybHk7CiAKICAgICAgICAgICAgIHVuY2hlY2tlZFJl
c3VsdEtleXMuYWRkKGlkZW50LmltcGwoKSk7Ci0gICAgICAgICAgICB0cmFwUmVzdWx0LmFkZChp
ZGVudC5pbXBsKCkpOworICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoaWRlbnQuaW1wbCgp
KTsKICAgICAgICAgICAgIHJldHVybiBkb250RXhpdEVhcmx5OwogICAgICAgICB9OwogCiAgICAg
ICAgIFJ1bnRpbWVUeXBlTWFzayBkb250VGhyb3dBbkV4Y2VwdGlvblR5cGVGaWx0ZXIgPSBUeXBl
U3RyaW5nIHwgVHlwZVN5bWJvbDsKLSAgICAgICAgY3JlYXRlTGlzdEZyb21BcnJheUxpa2UoZ2xv
YmFsT2JqZWN0LCBhcnJheUxpa2VPYmplY3QsIGRvbnRUaHJvd0FuRXhjZXB0aW9uVHlwZUZpbHRl
ciwgIlByb3h5IGhhbmRsZXIncyAnb3duS2V5cycgbWV0aG9kIG11c3QgcmV0dXJuIGFuIG9iamVj
dCJfcywgIlByb3h5IGhhbmRsZXIncyAnb3duS2V5cycgbWV0aG9kIG11c3QgcmV0dXJuIGFuIGFy
cmF5LWxpa2Ugb2JqZWN0IGNvbnRhaW5pbmcgb25seSBTdHJpbmdzIGFuZCBTeW1ib2xzIl9zLCBh
ZGRQcm9wTmFtZSk7CisgICAgICAgIGNyZWF0ZUxpc3RGcm9tQXJyYXlMaWtlKGdsb2JhbE9iamVj
dCwgdHJhcFJlc3VsdCwgZG9udFRocm93QW5FeGNlcHRpb25UeXBlRmlsdGVyLCAiUHJveHkgaGFu
ZGxlcidzICdvd25LZXlzJyBtZXRob2QgbXVzdCByZXR1cm4gYW4gb2JqZWN0Il9zLCAiUHJveHkg
aGFuZGxlcidzICdvd25LZXlzJyBtZXRob2QgbXVzdCByZXR1cm4gYW4gYXJyYXktbGlrZSBvYmpl
Y3QgY29udGFpbmluZyBvbmx5IFN0cmluZ3MgYW5kIFN5bWJvbHMiX3MsIGFkZFByb3BOYW1lKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICB9CiAKQEAg
LTEwNTIsMjkgKzEwNTIsMzcgQEAgdm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3Bl
cnR5TgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorfQogCi0gICAgaWYg
KCFlbnVtZXJhdGlvbk1vZGUuaW5jbHVkZURvbnRFbnVtUHJvcGVydGllcygpKSB7Ci0gICAgICAg
IC8vIEZpbHRlcmluZyBEb250RW51bSBwcm9wZXJ0aWVzIGlzIG9ic2VydmFibGUgaW4gcHJveGll
cyBhbmQgbXVzdCBvY2N1ciBmb2xsb3dpbmcgdGhlIGludmFyaWFudCBjaGVja3MgYWJvdmUuCi0g
ICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvcGVydHlOYW1lIDogdHJhcFJlc3VsdCkgewotICAg
ICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1l
dGhvZFR5cGU6OkdldE93blByb3BlcnR5KTsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gZ2V0
T3duUHJvcGVydHlTbG90Q29tbW9uKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsK
LSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAg
ICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHBy
b3BlcnR5TmFtZS5pbXBsKCkpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0cmFwUmVzdWx0KQotICAgICAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQocHJvcGVydHlOYW1lLmltcGwoKSk7Cit2b2lkIFByb3h5T2JqZWN0Ojpw
ZXJmb3JtR2V0T3duRW51bWVyYWJsZVByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKworICAgIFByb3BlcnR5TmFtZUFycmF5IHVuZmlsdGVyZWROYW1lcyh2bSwgcHJv
cGVydHlOYW1lcy5wcm9wZXJ0eU5hbWVNb2RlKCksIHByb3BlcnR5TmFtZXMucHJpdmF0ZVN5bWJv
bE1vZGUoKSk7CisgICAgcGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoZ2xvYmFsT2JqZWN0LCB1
bmZpbHRlcmVkTmFtZXMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
CisgICAgLy8gRmlsdGVyaW5nIERvbnRFbnVtIHByb3BlcnRpZXMgaXMgb2JzZXJ2YWJsZSBpbiBw
cm94aWVzIGFuZCBtdXN0IG9jY3VyIGFmdGVyIHRoZSBpbnZhcmlhbnQgY2hlY2tzIHBhc3MuCisg
ICAgZm9yIChjb25zdCBhdXRvJiBwcm9wZXJ0eU5hbWUgOiB1bmZpbHRlcmVkTmFtZXMpIHsKKyAg
ICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhv
ZFR5cGU6OkdldE93blByb3BlcnR5KTsKKyAgICAgICAgYXV0byBpc1Byb3BlcnR5RGVmaW5lZCA9
IGdldE93blByb3BlcnR5U2xvdENvbW1vbihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgICAg
IGlmICghaXNQcm9wZXJ0eURlZmluZWQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
aWYgKHNsb3QuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHByb3BlcnR5TmFt
ZS5pbXBsKCkpOwogICAgIH0KIH0KIAogdm9pZCBQcm94eU9iamVjdDo6Z2V0T3duUHJvcGVydHlO
YW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9w
ZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lQXJyYXksIEVudW1lcmF0aW9uTW9kZSBlbnVtZXJh
dGlvbk1vZGUpCiB7CiAgICAgUHJveHlPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UHJveHlP
YmplY3QqPihvYmplY3QpOwotICAgIHRoaXNPYmplY3QtPnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5h
bWVzKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lQXJyYXksIGVudW1lcmF0aW9uTW9kZSk7Cisg
ICAgQVNTRVJUKGVudW1lcmF0aW9uTW9kZS5pbmNsdWRlSlNPYmplY3RQcm9wZXJ0aWVzKCkpOwor
ICAgIGlmIChlbnVtZXJhdGlvbk1vZGUuaW5jbHVkZURvbnRFbnVtUHJvcGVydGllcygpKQorICAg
ICAgICB0aGlzT2JqZWN0LT5wZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhnbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZUFycmF5KTsKKyAgICBlbHNlCisgICAgICAgIHRoaXNPYmplY3QtPnBlcmZv
cm1HZXRPd25FbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZUFycmF5KTsKIH0KIAogdm9pZCBQcm94eU9iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhKU09iamVj
dCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lQXJyYXksIEVudW1lcmF0aW9uTW9kZSBlbnVtZXJhdGlvbk1vZGUpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgJKHJldmlz
aW9uIDI1MjAwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
cGVyZm9ybVByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgYm9vbCBwZXJm
b3JtSXNFeHRlbnNpYmxlKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgYm9vbCBwZXJmb3JtRGVmaW5l
T3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwotICAgIHZvaWQgcGVyZm9ybUdldE93blBy
b3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0
aW9uTW9kZSk7CisgICAgdm9pZCBwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhKU0dsb2JhbE9i
amVjdCosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgdm9pZCBwZXJmb3JtR2V0T3duRW51bWVy
YWJsZVByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOwog
ICAgIGJvb2wgcGVyZm9ybVNldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJv
dG90eXBlLCBib29sIHNob3VsZFRocm93SWZDYW50U2V0KTsKIAogICAgIFdyaXRlQmFycmllcjxK
U09iamVjdD4gbV90YXJnZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382773</attachid>
            <date>2019-11-04 14:15:48 -0800</date>
            <delta_ts>2019-11-06 14:18:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203818-20191105001546.patch</filename>
            <type>text/plain</type>
            <size>11366</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIwMTMpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDE5LTExLTA0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBQcm94eSdzIFtbT3duUHJvcGVydHlLZXlzXV0gaXMgaW5j
b3JyZWN0IGluIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzgxOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmVzcyB0ZXN0IHdhcyBmYWlsaW5n
IGJlY2F1c2UgIm93bktleXMiIHRyYXAgZGlkbid0IHJldHVybiBub24tY29uZmlndXJhYmxlCisg
ICAgICAgICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIFByb3h5J3MgdGFyZ2V0LCB2aW9sYXRpbmcg
YW4gaW52YXJpYW50LgorCisgICAgICAgICogc3RyZXNzL3Byb3h5LWdldC1vd24tcHJvcGVydHkt
bmFtZXMtc2hvdWxkLW5vdC1jbGVhci1wcmV2aW91cy1yZXN1bHRzLmpzOgorICAgICAgICAqIHRl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgNiB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisK
IDIwMTktMTEtMDMgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgTExJbnRHZW5lcmF0b3Igc2hvdWxkIG5vdCBhbGxvY2F0ZSB0ZW1wb3JhcmllcyBpbiBiZXR3
ZWVuIHZhcmlhYmxlcwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcHJveHktZ2V0LW93bi1wcm9wZXJ0
eS1uYW1lcy1zaG91bGQtbm90LWNsZWFyLXByZXZpb3VzLXJlc3VsdHMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy9zdHJlc3MvcHJveHktZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy1zaG91bGQtbm90
LWNsZWFyLXByZXZpb3VzLXJlc3VsdHMuanMJKHJldmlzaW9uIDI1MjAwMykKKysrIEpTVGVzdHMv
c3RyZXNzL3Byb3h5LWdldC1vd24tcHJvcGVydHktbmFtZXMtc2hvdWxkLW5vdC1jbGVhci1wcmV2
aW91cy1yZXN1bHRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQCBmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAKIGEgPSB7ZGVmaW5lUHJvcGVydGllczpPYmpl
Y3R9OwogZnVuY3Rpb24gb3B0KCkgewotICAgIGEuX19wcm90b19fID0gbmV3IFByb3h5KE9iamVj
dCx7b3duS2V5czpvcHR9KTsKKyAgICBhLl9fcHJvdG9fXyA9IG5ldyBQcm94eSh7fSwge293bktl
eXM6b3B0fSk7CiAgICAgcmV0dXJuIFtdOwogfQogZm9yKHZhciBpPTA7aTw0MDA7aT1pKzEpIHsK
SW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHJldmlzaW9uIDI1MjAwMykKKysrIEpT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTA0Miwx
NSArMTA0Miw2IEBAIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3cKIHRl
c3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVu
dC12YWx1ZS1yZWdleHAtZG9sbGFyMS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgU2FtZVZhbHVlKMOCwqvDgsK7LCDDgsKreMOCwrspIHRvIGJlIHRydWUnCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUow4LCq8OCwrssIMOCwqt4
w4LCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL09iamVjdC9rZXlzL3Byb3BlcnR5LXRy
YXBzLW9yZGVyLXdpdGgtcHJveGllZC1hcnJheS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW293bktleXMsIGdldE93blByb3BlcnR5RGVzY3JpcHRvcl0gYW5kIFtvd25L
ZXlzXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbb3duS2V5cywgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yXSBhbmQg
W293bktleXNdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09i
amVjdC9rZXlzL3Byb3h5LW5vbi1lbnVtZXJhYmxlLXByb3AtaW52YXJpYW50LTEuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCi10ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9wcm94eS1u
b24tZW51bWVyYWJsZS1wcm9wLWludmFyaWFudC0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvLWZyb20tY3Rvci1yZWFsbS5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqtbb2JqZWN0IE9i
amVjdF3DgsK7LCDDgsKrW29iamVjdCBPYmplY3Rdw4LCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29iamVjdCBPYmpl
Y3Rdw4LCuywgw4LCq1tvYmplY3QgT2JqZWN0XcOCwrspIHRvIGJlIHRydWUnCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjAwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0xMS0w
NCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUHJv
eHkncyBbW093blByb3BlcnR5S2V5c11dIGlzIGluY29ycmVjdCBpbiBEb250RW51bVByb3BlcnRp
ZXNNb2RlOjpFeGNsdWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM4MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyB0d28gc3BlYyBjb21wYXRpYmlsaXR5IGlzc3VlczoK
KworICAgICAgICAxLiBJZiBPYmplY3Qua2V5cyBpcyBjYWxsZWQgb24gUHJveHkgdy9vICJvd25L
ZXlzIiB0cmFwLCBmaWx0ZXJpbmcgbm9uLWVudW1lcmFibGUKKyAgICAgICAgcHJvcGVydGllcyBh
cmUgbm90IG9ic2VydmVkIGJ5ICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiIHRyYXAuCisgICAg
ICAgIChzdGVwIDQgb2YgaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1lbnVtZXJhYmxlb3du
cHJvcGVydHluYW1lcykKKworICAgICAgICAyLiBJZiBPYmplY3Qua2V5cyBpcyBjYWxsZWQgb24g
UHJveHkgd2l0aCAib3duS2V5cyIgdHJhcCwgbm9uLWVudW1lcmFibGUKKyAgICAgICAgcHJvcGVy
dGllcyBvZiBQcm94eSdzIHRhcmdldCBhcmUgaWdub3JlZCBkdXJpbmcgaW52YXJpYW50cyB2YWxp
ZGF0aW9uLgorICAgICAgICAoc3RlcCAxMSBvZiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2Vj
LXByb3h5LW9iamVjdC1pbnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90cy1vd25wcm9w
ZXJ0eWtleXMpCisKKyAgICAgICAgSW5zdGVhZCBvZiBleHRyYWN0aW5nIERvbnRFbnVtIGZpbHRl
cmluZyB0byBsYW1iZGEgZnVuY3Rpb24sIGEgd3JhcHBlciBtZXRob2QgZm9yCisgICAgICAgIFBy
b3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyB3YXMgaW50cm9kdWNlZCB0byBh
dm9pZCBjcmVhdGluZyAmCisgICAgICAgIGZpbGxpbmcgaW50ZXJtZWRpYXRlIFByb3BlcnR5TmFt
ZUFycmF5IGluc3RhbmNlIChpbiBjYXNlIG9mIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1
ZGUpCisgICAgICAgIGFuZCBhdm9pZCBoYXZpbmcgaW5uZXIgRW51bWVyYXRpb25Nb2RlIGluIFBy
b3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcy4KKworICAgICAgICAqIHJ1bnRp
bWUvUHJveHlPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybUdl
dE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybUdl
dE93bkVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6
OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoK
KwogMjAxOS0xMS0wNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
U3VycHJlc3MgQVNBTiBpbiBTYW1wbGluZ1Byb2ZpbGVyJ3MgRnJhbWVXYWxrZXI6OnJlc2V0QXRN
YWNoaW5lRnJhbWUoKS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eU9iamVjdC5jcHAJKHJldmlzaW9uIDI1MjAwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTE5LDcgKzkxOSw3
IEBAIGJvb2wgUHJveHlPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpTT2IKICAgICByZXR1cm4g
dGhpc09iamVjdC0+cGVyZm9ybURlZmluZU93blByb3BlcnR5KGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLXZvaWQgUHJveHlPYmplY3Q6
OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgZW51bWVy
YXRpb25Nb2RlKQordm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMpCiB7CiAgICAgTk9fVEFJTF9DQUxMUygpOwogCkBAIC05NDEsNiArOTQxLDcgQEAgdm9p
ZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TgogICAgIEpTVmFsdWUgb3duS2V5
c01ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBjYWxs
VHlwZSwgbWFrZUlkZW50aWZpZXIodm0sICJvd25LZXlzIiksICInb3duS2V5cycgcHJvcGVydHkg
b2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0aGlz
LT50YXJnZXQoKTsKKyAgICBFbnVtZXJhdGlvbk1vZGUgZW51bWVyYXRpb25Nb2RlKERvbnRFbnVt
UHJvcGVydGllc01vZGU6OkluY2x1ZGUpOwogICAgIGlmIChvd25LZXlzTWV0aG9kLmlzVW5kZWZp
bmVkKCkpIHsKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICB0YXJnZXQtPm1ldGhv
ZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQsIGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lcywgZW51bWVyYXRpb25Nb2RlKTsKQEAgLTk1MCwxMCArOTUxLDkgQEAgdm9pZCBQ
cm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TgogICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKHRhcmdldCk7CiAgICAgQVNTRVJU
KCFhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKLSAgICBKU1ZhbHVlIGFycmF5TGlrZU9iamVj
dCA9IGNhbGwoZ2xvYmFsT2JqZWN0LCBvd25LZXlzTWV0aG9kLCBjYWxsVHlwZSwgY2FsbERhdGEs
IGhhbmRsZXIsIGFyZ3VtZW50cyk7CisgICAgSlNWYWx1ZSB0cmFwUmVzdWx0ID0gY2FsbChnbG9i
YWxPYmplY3QsIG93bktleXNNZXRob2QsIGNhbGxUeXBlLCBjYWxsRGF0YSwgaGFuZGxlciwgYXJn
dW1lbnRzKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAg
UHJvcGVydHlOYW1lQXJyYXkgdHJhcFJlc3VsdCh2bSwgcHJvcGVydHlOYW1lcy5wcm9wZXJ0eU5h
bWVNb2RlKCksIHByb3BlcnR5TmFtZXMucHJpdmF0ZVN5bWJvbE1vZGUoKSk7CiAgICAgSGFzaFNl
dDxVbmlxdWVkU3RyaW5nSW1wbCo+IHVuY2hlY2tlZFJlc3VsdEtleXM7CiAgICAgewogICAgICAg
ICBIYXNoU2V0PFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+IHNlZW5LZXlzOwpAQCAtOTk1LDEy
ICs5OTUsMTIgQEAgdm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TgogICAg
ICAgICAgICAgICAgIHJldHVybiBkb250RXhpdEVhcmx5OwogCiAgICAgICAgICAgICB1bmNoZWNr
ZWRSZXN1bHRLZXlzLmFkZChpZGVudC5pbXBsKCkpOwotICAgICAgICAgICAgdHJhcFJlc3VsdC5h
ZGQoaWRlbnQuaW1wbCgpKTsKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGlkZW50Lmlt
cGwoKSk7CiAgICAgICAgICAgICByZXR1cm4gZG9udEV4aXRFYXJseTsKICAgICAgICAgfTsKIAog
ICAgICAgICBSdW50aW1lVHlwZU1hc2sgZG9udFRocm93QW5FeGNlcHRpb25UeXBlRmlsdGVyID0g
VHlwZVN0cmluZyB8IFR5cGVTeW1ib2w7Ci0gICAgICAgIGNyZWF0ZUxpc3RGcm9tQXJyYXlMaWtl
KGdsb2JhbE9iamVjdCwgYXJyYXlMaWtlT2JqZWN0LCBkb250VGhyb3dBbkV4Y2VwdGlvblR5cGVG
aWx0ZXIsICJQcm94eSBoYW5kbGVyJ3MgJ293bktleXMnIG1ldGhvZCBtdXN0IHJldHVybiBhbiBv
YmplY3QiX3MsICJQcm94eSBoYW5kbGVyJ3MgJ293bktleXMnIG1ldGhvZCBtdXN0IHJldHVybiBh
biBhcnJheS1saWtlIG9iamVjdCBjb250YWluaW5nIG9ubHkgU3RyaW5ncyBhbmQgU3ltYm9scyJf
cywgYWRkUHJvcE5hbWUpOworICAgICAgICBjcmVhdGVMaXN0RnJvbUFycmF5TGlrZShnbG9iYWxP
YmplY3QsIHRyYXBSZXN1bHQsIGRvbnRUaHJvd0FuRXhjZXB0aW9uVHlwZUZpbHRlciwgIlByb3h5
IGhhbmRsZXIncyAnb3duS2V5cycgbWV0aG9kIG11c3QgcmV0dXJuIGFuIG9iamVjdCJfcywgIlBy
b3h5IGhhbmRsZXIncyAnb3duS2V5cycgbWV0aG9kIG11c3QgcmV0dXJuIGFuIGFycmF5LWxpa2Ug
b2JqZWN0IGNvbnRhaW5pbmcgb25seSBTdHJpbmdzIGFuZCBTeW1ib2xzIl9zLCBhZGRQcm9wTmFt
ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgfQog
CkBAIC0xMDUyLDI5ICsxMDUyLDM3IEBAIHZvaWQgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Q
cm9wZXJ0eU4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KK30KIAotICAg
IGlmICghZW51bWVyYXRpb25Nb2RlLmluY2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkgewotICAg
ICAgICAvLyBGaWx0ZXJpbmcgRG9udEVudW0gcHJvcGVydGllcyBpcyBvYnNlcnZhYmxlIGluIHBy
b3hpZXMgYW5kIG11c3Qgb2NjdXIgZm9sbG93aW5nIHRoZSBpbnZhcmlhbnQgY2hlY2tzIGFib3Zl
LgotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3BlcnR5TmFtZSA6IHRyYXBSZXN1bHQpIHsK
LSAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7Ci0gICAgICAgICAgICBhdXRvIHJlc3VsdCA9
IGdldE93blByb3BlcnR5U2xvdENvbW1vbihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAg
ICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBpZiAoc2xvdC5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFk
ZChwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGZvciAoY29uc3QgYXV0byYgcHJvcGVydHlOYW1lIDogdHJhcFJlc3VsdCkKLSAgICAgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKHByb3BlcnR5TmFtZS5pbXBsKCkpOwordm9pZCBQcm94eU9iamVj
dDo6cGVyZm9ybUdldE93bkVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQoreworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSB1bmZpbHRlcmVkTmFtZXModm0s
IHByb3BlcnR5TmFtZXMucHJvcGVydHlOYW1lTW9kZSgpLCBwcm9wZXJ0eU5hbWVzLnByaXZhdGVT
eW1ib2xNb2RlKCkpOworICAgIHBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKGdsb2JhbE9iamVj
dCwgdW5maWx0ZXJlZE5hbWVzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOworICAgIC8vIEZpbHRlcmluZyBEb250RW51bSBwcm9wZXJ0aWVzIGlzIG9ic2VydmFibGUg
aW4gcHJveGllcyBhbmQgbXVzdCBvY2N1ciBhZnRlciB0aGUgaW52YXJpYW50IGNoZWNrcyBwYXNz
LgorICAgIGZvciAoY29uc3QgYXV0byYgcHJvcGVydHlOYW1lIDogdW5maWx0ZXJlZE5hbWVzKSB7
CisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxN
ZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CisgICAgICAgIGF1dG8gaXNQcm9wZXJ0eURlZmlu
ZWQgPSBnZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAg
ICAgICBpZiAoIWlzUHJvcGVydHlEZWZpbmVkKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChwcm9wZXJ0
eU5hbWUuaW1wbCgpKTsKICAgICB9CiB9CiAKIHZvaWQgUHJveHlPYmplY3Q6OmdldE93blByb3Bl
cnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZUFycmF5LCBFbnVtZXJhdGlvbk1vZGUgZW51
bWVyYXRpb25Nb2RlKQogewogICAgIFByb3h5T2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFBy
b3h5T2JqZWN0Kj4ob2JqZWN0KTsKLSAgICB0aGlzT2JqZWN0LT5wZXJmb3JtR2V0T3duUHJvcGVy
dHlOYW1lcyhnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZUFycmF5LCBlbnVtZXJhdGlvbk1vZGUp
OworICAgIEFTU0VSVChlbnVtZXJhdGlvbk1vZGUuaW5jbHVkZUpTT2JqZWN0UHJvcGVydGllcygp
KTsKKyAgICBpZiAoZW51bWVyYXRpb25Nb2RlLmluY2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkK
KyAgICAgICAgdGhpc09iamVjdC0+cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoZ2xvYmFsT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWVBcnJheSk7CisgICAgZWxzZQorICAgICAgICB0aGlzT2JqZWN0LT5w
ZXJmb3JtR2V0T3duRW51bWVyYWJsZVByb3BlcnR5TmFtZXMoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWVBcnJheSk7CiB9CiAKIHZvaWQgUHJveHlPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoSlNP
YmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1l
QXJyYXkmIHByb3BlcnR5TmFtZUFycmF5LCBFbnVtZXJhdGlvbk1vZGUgZW51bWVyYXRpb25Nb2Rl
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCShy
ZXZpc2lvbiAyNTIwMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIHBlcmZvcm1QcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCopOwogICAgIGJvb2wg
cGVyZm9ybUlzRXh0ZW5zaWJsZShKU0dsb2JhbE9iamVjdCopOwogICAgIGJvb2wgcGVyZm9ybURl
ZmluZU93blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBjb25zdCBQcm9w
ZXJ0eURlc2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKLSAgICB2b2lkIHBlcmZvcm1HZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVt
ZXJhdGlvbk1vZGUpOworICAgIHZvaWQgcGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoSlNHbG9i
YWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZvaWQgcGVyZm9ybUdldE93bkVu
dW1lcmFibGVQcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lQXJyYXkm
KTsKICAgICBib29sIHBlcmZvcm1TZXRQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
IHByb3RvdHlwZSwgYm9vbCBzaG91bGRUaHJvd0lmQ2FudFNldCk7CiAKICAgICBXcml0ZUJhcnJp
ZXI8SlNPYmplY3Q+IG1fdGFyZ2V0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382961</attachid>
            <date>2019-11-06 14:18:46 -0800</date>
            <delta_ts>2020-01-06 10:27:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203818-20191107001845.patch</filename>
            <type>text/plain</type>
            <size>11308</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTIwMTMpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDE5LTExLTA2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBQcm94eSdzIFtbT3duUHJvcGVydHlLZXlzXV0gaXMgaW5j
b3JyZWN0IGluIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzgxOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0cmVzcyB0ZXN0IHdhcyBmYWlsaW5n
IGJlY2F1c2UgIm93bktleXMiIHRyYXAgZGlkbid0IHJldHVybiBub24tY29uZmlndXJhYmxlCisg
ICAgICAgICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIFByb3h5J3MgdGFyZ2V0LCB2aW9sYXRpbmcg
YW4gaW52YXJpYW50LgorCisgICAgICAgICogc3RyZXNzL3Byb3h5LWdldC1vd24tcHJvcGVydHkt
bmFtZXMtc2hvdWxkLW5vdC1jbGVhci1wcmV2aW91cy1yZXN1bHRzLmpzOgorICAgICAgICAqIHRl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgNiB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisK
IDIwMTktMTEtMDMgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgTExJbnRHZW5lcmF0b3Igc2hvdWxkIG5vdCBhbGxvY2F0ZSB0ZW1wb3JhcmllcyBpbiBiZXR3
ZWVuIHZhcmlhYmxlcwpJbmRleDogSlNUZXN0cy9zdHJlc3MvcHJveHktZ2V0LW93bi1wcm9wZXJ0
eS1uYW1lcy1zaG91bGQtbm90LWNsZWFyLXByZXZpb3VzLXJlc3VsdHMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy9zdHJlc3MvcHJveHktZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy1zaG91bGQtbm90
LWNsZWFyLXByZXZpb3VzLXJlc3VsdHMuanMJKHJldmlzaW9uIDI1MjAwMykKKysrIEpTVGVzdHMv
c3RyZXNzL3Byb3h5LWdldC1vd24tcHJvcGVydHktbmFtZXMtc2hvdWxkLW5vdC1jbGVhci1wcmV2
aW91cy1yZXN1bHRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQCBmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAKIGEgPSB7ZGVmaW5lUHJvcGVydGllczpPYmpl
Y3R9OwogZnVuY3Rpb24gb3B0KCkgewotICAgIGEuX19wcm90b19fID0gbmV3IFByb3h5KE9iamVj
dCx7b3duS2V5czpvcHR9KTsKKyAgICBhLl9fcHJvdG9fXyA9IG5ldyBQcm94eSh7fSwge293bktl
eXM6b3B0fSk7CiAgICAgcmV0dXJuIFtdOwogfQogZm9yKHZhciBpPTA7aTw0MDA7aT1pKzEpIHsK
SW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHJldmlzaW9uIDI1MjAwMykKKysrIEpT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTA0Miwx
NSArMTA0Miw2IEBAIHRlc3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3cKIHRl
c3QvYnVpbHQtaW5zL09iamVjdC9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkvY29uc2lzdGVu
dC12YWx1ZS1yZWdleHAtZG9sbGFyMS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgU2FtZVZhbHVlKMOCwqvDgsK7LCDDgsKreMOCwrspIHRvIGJlIHRydWUnCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUow4LCq8OCwrssIMOCwqt4
w4LCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL09iamVjdC9rZXlzL3Byb3BlcnR5LXRy
YXBzLW9yZGVyLXdpdGgtcHJveGllZC1hcnJheS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW293bktleXMsIGdldE93blByb3BlcnR5RGVzY3JpcHRvcl0gYW5kIFtvd25L
ZXlzXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbb3duS2V5cywgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yXSBhbmQg
W293bktleXNdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKLXRlc3QvYnVpbHQtaW5zL09i
amVjdC9rZXlzL3Byb3h5LW5vbi1lbnVtZXJhYmxlLXByb3AtaW52YXJpYW50LTEuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCi10ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9wcm94eS1u
b24tZW51bWVyYWJsZS1wcm9wLWludmFyaWFudC0yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L3Byb3RvLWZyb20tY3Rvci1yZWFsbS5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqtbb2JqZWN0IE9i
amVjdF3DgsK7LCDDgsKrW29iamVjdCBPYmplY3Rdw4LCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29iamVjdCBPYmpl
Y3Rdw4LCuywgw4LCq1tvYmplY3QgT2JqZWN0XcOCwrspIHRvIGJlIHRydWUnCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjAwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0xMS0w
NiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUHJv
eHkncyBbW093blByb3BlcnR5S2V5c11dIGlzIGluY29ycmVjdCBpbiBEb250RW51bVByb3BlcnRp
ZXNNb2RlOjpFeGNsdWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM4MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyB0d28gc3BlYyBjb21wYXRpYmlsaXR5IGlzc3VlczoK
KworICAgICAgICAxLiBJZiBPYmplY3Qua2V5cyBpcyBjYWxsZWQgb24gUHJveHkgdy9vICJvd25L
ZXlzIiB0cmFwLCBmaWx0ZXJpbmcgbm9uLWVudW1lcmFibGUKKyAgICAgICAgcHJvcGVydGllcyBh
cmUgbm90IG9ic2VydmVkIGJ5ICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiIHRyYXAuCisgICAg
ICAgIChzdGVwIDQgb2YgaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1lbnVtZXJhYmxlb3du
cHJvcGVydHluYW1lcykKKworICAgICAgICAyLiBJZiBPYmplY3Qua2V5cyBpcyBjYWxsZWQgb24g
UHJveHkgd2l0aCAib3duS2V5cyIgdHJhcCwgbm9uLWVudW1lcmFibGUKKyAgICAgICAgcHJvcGVy
dGllcyBvZiBQcm94eSdzIHRhcmdldCBhcmUgaWdub3JlZCBkdXJpbmcgaW52YXJpYW50cyB2YWxp
ZGF0aW9uLgorICAgICAgICAoc3RlcCAxMSBvZiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2Vj
LXByb3h5LW9iamVjdC1pbnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90cy1vd25wcm9w
ZXJ0eWtleXMpCisKKyAgICAgICAgSW5zdGVhZCBvZiBleHRyYWN0aW5nIERvbnRFbnVtIGZpbHRl
cmluZyB0byBsYW1iZGEgZnVuY3Rpb24sIGEgd3JhcHBlciBtZXRob2QgZm9yCisgICAgICAgIFBy
b3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyB3YXMgaW50cm9kdWNlZCB0byBh
dm9pZCBjcmVhdGluZyAmCisgICAgICAgIGZpbGxpbmcgaW50ZXJtZWRpYXRlIFByb3BlcnR5TmFt
ZUFycmF5IGluc3RhbmNlIChpbiBjYXNlIG9mIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1
ZGUpCisgICAgICAgIGFuZCBhdm9pZCBoYXZpbmcgaW5uZXIgRW51bWVyYXRpb25Nb2RlIGluIFBy
b3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcy4KKworICAgICAgICAqIHJ1bnRp
bWUvUHJveHlPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybUdl
dE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybUdl
dE93bkVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6
OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoK
KwogMjAxOS0xMS0wNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
U3VycHJlc3MgQVNBTiBpbiBTYW1wbGluZ1Byb2ZpbGVyJ3MgRnJhbWVXYWxrZXI6OnJlc2V0QXRN
YWNoaW5lRnJhbWUoKS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eU9iamVjdC5jcHAJKHJldmlzaW9uIDI1MjAwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTE5LDcgKzkxOSw3
IEBAIGJvb2wgUHJveHlPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpTT2IKICAgICByZXR1cm4g
dGhpc09iamVjdC0+cGVyZm9ybURlZmluZU93blByb3BlcnR5KGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLXZvaWQgUHJveHlPYmplY3Q6
OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgZW51bWVy
YXRpb25Nb2RlKQordm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMpCiB7CiAgICAgTk9fVEFJTF9DQUxMUygpOwogCkBAIC05NDEsNiArOTQxLDcgQEAgdm9p
ZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TgogICAgIEpTVmFsdWUgb3duS2V5
c01ldGhvZCA9IGhhbmRsZXItPmdldE1ldGhvZChnbG9iYWxPYmplY3QsIGNhbGxEYXRhLCBjYWxs
VHlwZSwgbWFrZUlkZW50aWZpZXIodm0sICJvd25LZXlzIiksICInb3duS2V5cycgcHJvcGVydHkg
b2YgYSBQcm94eSdzIGhhbmRsZXIgc2hvdWxkIGJlIGNhbGxhYmxlIl9zKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0aGlz
LT50YXJnZXQoKTsKKyAgICBFbnVtZXJhdGlvbk1vZGUgZW51bWVyYXRpb25Nb2RlKERvbnRFbnVt
UHJvcGVydGllc01vZGU6OkluY2x1ZGUpOwogICAgIGlmIChvd25LZXlzTWV0aG9kLmlzVW5kZWZp
bmVkKCkpIHsKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICB0YXJnZXQtPm1ldGhv
ZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQsIGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lcywgZW51bWVyYXRpb25Nb2RlKTsKQEAgLTk1MCwxMCArOTUxLDkgQEAgdm9pZCBQ
cm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TgogICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKHRhcmdldCk7CiAgICAgQVNTRVJU
KCFhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKLSAgICBKU1ZhbHVlIGFycmF5TGlrZU9iamVj
dCA9IGNhbGwoZ2xvYmFsT2JqZWN0LCBvd25LZXlzTWV0aG9kLCBjYWxsVHlwZSwgY2FsbERhdGEs
IGhhbmRsZXIsIGFyZ3VtZW50cyk7CisgICAgSlNWYWx1ZSB0cmFwUmVzdWx0ID0gY2FsbChnbG9i
YWxPYmplY3QsIG93bktleXNNZXRob2QsIGNhbGxUeXBlLCBjYWxsRGF0YSwgaGFuZGxlciwgYXJn
dW1lbnRzKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAg
UHJvcGVydHlOYW1lQXJyYXkgdHJhcFJlc3VsdCh2bSwgcHJvcGVydHlOYW1lcy5wcm9wZXJ0eU5h
bWVNb2RlKCksIHByb3BlcnR5TmFtZXMucHJpdmF0ZVN5bWJvbE1vZGUoKSk7CiAgICAgSGFzaFNl
dDxVbmlxdWVkU3RyaW5nSW1wbCo+IHVuY2hlY2tlZFJlc3VsdEtleXM7CiAgICAgewogICAgICAg
ICBIYXNoU2V0PFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+IHNlZW5LZXlzOwpAQCAtOTk1LDEy
ICs5OTUsMTIgQEAgdm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TgogICAg
ICAgICAgICAgICAgIHJldHVybiBkb250RXhpdEVhcmx5OwogCiAgICAgICAgICAgICB1bmNoZWNr
ZWRSZXN1bHRLZXlzLmFkZChpZGVudC5pbXBsKCkpOwotICAgICAgICAgICAgdHJhcFJlc3VsdC5h
ZGQoaWRlbnQuaW1wbCgpKTsKKyAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKGlkZW50Lmlt
cGwoKSk7CiAgICAgICAgICAgICByZXR1cm4gZG9udEV4aXRFYXJseTsKICAgICAgICAgfTsKIAog
ICAgICAgICBSdW50aW1lVHlwZU1hc2sgZG9udFRocm93QW5FeGNlcHRpb25UeXBlRmlsdGVyID0g
VHlwZVN0cmluZyB8IFR5cGVTeW1ib2w7Ci0gICAgICAgIGNyZWF0ZUxpc3RGcm9tQXJyYXlMaWtl
KGdsb2JhbE9iamVjdCwgYXJyYXlMaWtlT2JqZWN0LCBkb250VGhyb3dBbkV4Y2VwdGlvblR5cGVG
aWx0ZXIsICJQcm94eSBoYW5kbGVyJ3MgJ293bktleXMnIG1ldGhvZCBtdXN0IHJldHVybiBhbiBv
YmplY3QiX3MsICJQcm94eSBoYW5kbGVyJ3MgJ293bktleXMnIG1ldGhvZCBtdXN0IHJldHVybiBh
biBhcnJheS1saWtlIG9iamVjdCBjb250YWluaW5nIG9ubHkgU3RyaW5ncyBhbmQgU3ltYm9scyJf
cywgYWRkUHJvcE5hbWUpOworICAgICAgICBjcmVhdGVMaXN0RnJvbUFycmF5TGlrZShnbG9iYWxP
YmplY3QsIHRyYXBSZXN1bHQsIGRvbnRUaHJvd0FuRXhjZXB0aW9uVHlwZUZpbHRlciwgIlByb3h5
IGhhbmRsZXIncyAnb3duS2V5cycgbWV0aG9kIG11c3QgcmV0dXJuIGFuIG9iamVjdCJfcywgIlBy
b3h5IGhhbmRsZXIncyAnb3duS2V5cycgbWV0aG9kIG11c3QgcmV0dXJuIGFuIGFycmF5LWxpa2Ug
b2JqZWN0IGNvbnRhaW5pbmcgb25seSBTdHJpbmdzIGFuZCBTeW1ib2xzIl9zLCBhZGRQcm9wTmFt
ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgfQog
CkBAIC0xMDUyLDI5ICsxMDUyLDM2IEBAIHZvaWQgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Q
cm9wZXJ0eU4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KK30KIAotICAg
IGlmICghZW51bWVyYXRpb25Nb2RlLmluY2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkgewotICAg
ICAgICAvLyBGaWx0ZXJpbmcgRG9udEVudW0gcHJvcGVydGllcyBpcyBvYnNlcnZhYmxlIGluIHBy
b3hpZXMgYW5kIG11c3Qgb2NjdXIgZm9sbG93aW5nIHRoZSBpbnZhcmlhbnQgY2hlY2tzIGFib3Zl
LgotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3BlcnR5TmFtZSA6IHRyYXBSZXN1bHQpIHsK
LSAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7Ci0gICAgICAgICAgICBhdXRvIHJlc3VsdCA9
IGdldE93blByb3BlcnR5U2xvdENvbW1vbihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xv
dCk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAg
ICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBpZiAoc2xvdC5hdHRyaWJ1dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFk
ZChwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAg
IGZvciAoY29uc3QgYXV0byYgcHJvcGVydHlOYW1lIDogdHJhcFJlc3VsdCkKLSAgICAgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKHByb3BlcnR5TmFtZS5pbXBsKCkpOwordm9pZCBQcm94eU9iamVj
dDo6cGVyZm9ybUdldE93bkVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQoreworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSB1bmZpbHRlcmVkTmFtZXModm0s
IHByb3BlcnR5TmFtZXMucHJvcGVydHlOYW1lTW9kZSgpLCBwcm9wZXJ0eU5hbWVzLnByaXZhdGVT
eW1ib2xNb2RlKCkpOworICAgIHBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKGdsb2JhbE9iamVj
dCwgdW5maWx0ZXJlZE5hbWVzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOworICAgIC8vIEZpbHRlcmluZyBEb250RW51bSBwcm9wZXJ0aWVzIGlzIG9ic2VydmFibGUg
aW4gcHJveGllcyBhbmQgbXVzdCBvY2N1ciBhZnRlciB0aGUgaW52YXJpYW50IGNoZWNrcyBwYXNz
LgorICAgIGZvciAoY29uc3QgYXV0byYgcHJvcGVydHlOYW1lIDogdW5maWx0ZXJlZE5hbWVzKSB7
CisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxN
ZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CisgICAgICAgIGF1dG8gaXNQcm9wZXJ0eURlZmlu
ZWQgPSBnZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAg
ICAgICBpZiAoIWlzUHJvcGVydHlEZWZpbmVkKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChwcm9wZXJ0
eU5hbWUuaW1wbCgpKTsKICAgICB9CiB9CiAKIHZvaWQgUHJveHlPYmplY3Q6OmdldE93blByb3Bl
cnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZUFycmF5LCBFbnVtZXJhdGlvbk1vZGUgZW51
bWVyYXRpb25Nb2RlKQogewogICAgIFByb3h5T2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFBy
b3h5T2JqZWN0Kj4ob2JqZWN0KTsKLSAgICB0aGlzT2JqZWN0LT5wZXJmb3JtR2V0T3duUHJvcGVy
dHlOYW1lcyhnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZUFycmF5LCBlbnVtZXJhdGlvbk1vZGUp
OworICAgIGlmIChlbnVtZXJhdGlvbk1vZGUuaW5jbHVkZURvbnRFbnVtUHJvcGVydGllcygpKQor
ICAgICAgICB0aGlzT2JqZWN0LT5wZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZUFycmF5KTsKKyAgICBlbHNlCisgICAgICAgIHRoaXNPYmplY3QtPnBl
cmZvcm1HZXRPd25FbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhnbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZUFycmF5KTsKIH0KIAogdm9pZCBQcm94eU9iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhKU09i
amVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHlOYW1lQXJyYXksIEVudW1lcmF0aW9uTW9kZSBlbnVtZXJhdGlvbk1vZGUp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgJKHJl
dmlzaW9uIDI1MjAwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgcGVyZm9ybVByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgYm9vbCBw
ZXJmb3JtSXNFeHRlbnNpYmxlKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgYm9vbCBwZXJmb3JtRGVm
aW5lT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3Bl
cnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwotICAgIHZvaWQgcGVyZm9ybUdldE93
blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSk7CisgICAgdm9pZCBwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhKU0dsb2Jh
bE9iamVjdCosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgdm9pZCBwZXJmb3JtR2V0T3duRW51
bWVyYWJsZVByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVBcnJheSYp
OwogICAgIGJvb2wgcGVyZm9ybVNldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUg
cHJvdG90eXBlLCBib29sIHNob3VsZFRocm93SWZDYW50U2V0KTsKIAogICAgIFdyaXRlQmFycmll
cjxKU09iamVjdD4gbV90YXJnZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386860</attachid>
            <date>2020-01-06 10:28:05 -0800</date>
            <delta_ts>2020-01-06 11:31:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203818-20200106202803.patch</filename>
            <type>text/plain</type>
            <size>11630</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTQwNjApCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTA2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBQcm94eSdzIFtbT3duUHJvcGVydHlLZXlzXV0gaXMgaW5j
b3JyZWN0IGluIERvbnRFbnVtUHJvcGVydGllc01vZGU6OkV4Y2x1ZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzgxOAorCisgICAgICAgIFJldmll
d2VkIGJ5IEtlaXRoIE1pbGxlci4KKworICAgICAgICBTdHJlc3MgdGVzdCB3YXMgZmFpbGluZyBi
ZWNhdXNlICJvd25LZXlzIiB0cmFwIGRpZG4ndCByZXR1cm4gbm9uLWNvbmZpZ3VyYWJsZQorICAg
ICAgICAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiBQcm94eSdzIHRhcmdldCwgdmlvbGF0aW5nIGFu
IGludmFyaWFudC4KKworICAgICAgICAqIHN0cmVzcy9wcm94eS1nZXQtb3duLXByb3BlcnR5LW5h
bWVzLXNob3VsZC1ub3QtY2xlYXItcHJldmlvdXMtcmVzdWx0cy5qczoKKyAgICAgICAgKiB0ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sOiBNYXJrIDggdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAy
MDIwLTAxLTA0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAg
ICAgICBKU09OLnBhcnNlIHNob3VsZCBpbml0aWFsaXplIHdyYXBwZXIgb2JqZWN0IHdpdGggW1tE
ZWZpbmVPd25Qcm9wZXJ0eV1dCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9wcm94eS1nZXQtb3duLXBy
b3BlcnR5LW5hbWVzLXNob3VsZC1ub3QtY2xlYXItcHJldmlvdXMtcmVzdWx0cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9wcm94eS1nZXQtb3duLXByb3BlcnR5LW5hbWVzLXNob3Vs
ZC1ub3QtY2xlYXItcHJldmlvdXMtcmVzdWx0cy5qcwkocmV2aXNpb24gMjU0MDUyKQorKysgSlNU
ZXN0cy9zdHJlc3MvcHJveHktZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy1zaG91bGQtbm90LWNsZWFy
LXByZXZpb3VzLXJlc3VsdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBAIGZ1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKIAogYSA9IHtkZWZpbmVQcm9wZXJ0aWVz
Ok9iamVjdH07CiBmdW5jdGlvbiBvcHQoKSB7Ci0gICAgYS5fX3Byb3RvX18gPSBuZXcgUHJveHko
T2JqZWN0LHtvd25LZXlzOm9wdH0pOworICAgIGEuX19wcm90b19fID0gbmV3IFByb3h5KHt9LCB7
b3duS2V5czpvcHR9KTsKICAgICByZXR1cm4gW107CiB9CiBmb3IodmFyIGk9MDtpPDQwMDtpPWkr
MSkgewpJbmRleDogSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAkocmV2aXNpb24gMjU0MDUyKQor
KysgSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTgzLDE4ICsxMTgzLDYgQEAgdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVP
dwogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9jb25z
aXN0ZW50LXZhbHVlLXJlZ2V4cC1kb2xsYXIxLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqt4wrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqt4wrspIHRvIGJl
IHRydWUnCi10ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9wcm9wZXJ0eS10cmFwcy1vcmRlci13
aXRoLXByb3hpZWQtYXJyYXkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IFtvd25LZXlzLCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JdIGFuZCBbb3duS2V5c10gdG8gaGF2
ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgW293bktleXMsIGdldE93blByb3BlcnR5RGVzY3JpcHRvcl0gYW5kIFtvd25LZXlzXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCi10ZXN0L2J1aWx0LWlucy9PYmplY3Qva2V5cy9w
cm94eS1ub24tZW51bWVyYWJsZS1wcm9wLWludmFyaWFudC0xLmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2Vw
dGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJv
d24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvT2JqZWN0L2tleXMvcHJveHktbm9uLWVudW1lcmFi
bGUtcHJvcC1pbnZhcmlhbnQtMi5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3Qv
YnVpbHQtaW5zL09iamVjdC9rZXlzL3Byb3h5LW5vbi1lbnVtZXJhYmxlLXByb3AtaW52YXJpYW50
LTMuanM6Ci0gIGRlZmF1bHQ6ICJUeXBlRXJyb3I6IFByb3h5IGhhbmRsZXIncyAnb3duS2V5cycg
bWV0aG9kIHJldHVybmVkIGEga2V5IHRoYXQgd2FzIG5vdCBwcmVzZW50IGluIGl0cyBub24tZXh0
ZW5zaWJsZSB0YXJnZXQiCi0gIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiBQcm94eSBoYW5kbGVy
J3MgJ293bktleXMnIG1ldGhvZCByZXR1cm5lZCBhIGtleSB0aGF0IHdhcyBub3QgcHJlc2VudCBp
biBpdHMgbm9uLWV4dGVuc2libGUgdGFyZ2V0IgogdGVzdC9idWlsdC1pbnMvT2JqZWN0L3ByZXZl
bnRFeHRlbnNpb25zL3Rocm93cy13aGVuLWZhbHNlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTQwNTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MzEgQEAKKzIwMjAtMDEtMDYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29t
PgorCisgICAgICAgIFByb3h5J3MgW1tPd25Qcm9wZXJ0eUtleXNdXSBpcyBpbmNvcnJlY3QgaW4g
RG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6RXhjbHVkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2Vp
dGggTWlsbGVyLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGZpeGVzIHR3byBzcGVjIGNvbXBhdGli
aWxpdHkgaXNzdWVzOgorCisgICAgICAgIDEuIElmIE9iamVjdC5rZXlzIGlzIGNhbGxlZCBvbiBQ
cm94eSB3L28gIm93bktleXMiIHRyYXAsIGZpbHRlcmluZyBub24tZW51bWVyYWJsZQorICAgICAg
ICBwcm9wZXJ0aWVzIGFyZSBub3Qgb2JzZXJ2ZWQgYnkgImdldE93blByb3BlcnR5RGVzY3JpcHRv
ciIgdHJhcC4KKyAgICAgICAgKHN0ZXAgNCBvZiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2Vj
LWVudW1lcmFibGVvd25wcm9wZXJ0eW5hbWVzKQorCisgICAgICAgIDIuIElmIE9iamVjdC5rZXlz
IGlzIGNhbGxlZCBvbiBQcm94eSB3aXRoICJvd25LZXlzIiB0cmFwLCBub24tZW51bWVyYWJsZQor
ICAgICAgICBwcm9wZXJ0aWVzIG9mIFByb3h5J3MgdGFyZ2V0IGFyZSBpZ25vcmVkIGR1cmluZyBp
bnZhcmlhbnRzIHZhbGlkYXRpb24uCisgICAgICAgIChzdGVwIDExIG9mIGh0dHBzOi8vdGMzOS5l
cy9lY21hMjYyLyNzZWMtcHJveHktb2JqZWN0LWludGVybmFsLW1ldGhvZHMtYW5kLWludGVybmFs
LXNsb3RzLW93bnByb3BlcnR5a2V5cykKKworICAgICAgICBJbnN0ZWFkIG9mIGV4dHJhY3Rpbmcg
RG9udEVudW0gZmlsdGVyaW5nIHRvIGxhbWJkYSBmdW5jdGlvbiwgYSB3cmFwcGVyIG1ldGhvZCBm
b3IKKyAgICAgICAgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzIHdhcyBp
bnRyb2R1Y2VkIHRvIGF2b2lkIGNyZWF0aW5nICYKKyAgICAgICAgZmlsbGluZyBpbnRlcm1lZGlh
dGUgUHJvcGVydHlOYW1lQXJyYXkgaW5zdGFuY2UgKGluIGNhc2Ugb2YgRG9udEVudW1Qcm9wZXJ0
aWVzTW9kZTo6SW5jbHVkZSkKKyAgICAgICAgYW5kIGF2b2lkIGhhdmluZyBpbm5lciBFbnVtZXJh
dGlvbk1vZGUgaW4gUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzLgorCisg
ICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlByb3h5T2Jq
ZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OlByb3h5T2Jq
ZWN0OjpwZXJmb3JtR2V0T3duRW51bWVyYWJsZVByb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlND
OjpQcm94eU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9Q
cm94eU9iamVjdC5oOgorCiAyMDIwLTAxLTA1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNv
bT4KIAogICAgICAgICBGdXJ0aGVyIHNpbXBsaWZ5IFN0cmluZ0J1aWxkZXIgdXNhZ2UgYnkgc3Rh
bmRhcmRpemluZyBoZXggZm9ybWF0aW5nIHRvIGEgc2luZ2xlIGhleCgpIGZ1bmN0aW9uCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCShyZXZp
c2lvbiAyNTQwNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxOSw3ICs5MTksNyBAQCBib29sIFByb3h5T2JqZWN0
OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iCiAgICAgcmV0dXJuIHRoaXNPYmplY3QtPnBlcmZvcm1E
ZWZpbmVPd25Qcm9wZXJ0eShnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwg
c2hvdWxkVGhyb3cpOwogfQogCi12b2lkIFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVy
dHlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIGVudW1lcmF0aW9uTW9kZSkKK3ZvaWQgUHJv
eHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQogewogICAgIE5PX1RB
SUxfQ0FMTFMoKTsKIApAQCAtOTQxLDYgKzk0MSw3IEBAIHZvaWQgUHJveHlPYmplY3Q6OnBlcmZv
cm1HZXRPd25Qcm9wZXJ0eU4KICAgICBKU1ZhbHVlIG93bktleXNNZXRob2QgPSBoYW5kbGVyLT5n
ZXRNZXRob2QoZ2xvYmFsT2JqZWN0LCBjYWxsRGF0YSwgY2FsbFR5cGUsIG1ha2VJZGVudGlmaWVy
KHZtLCAib3duS2V5cyIpLCAiJ293bktleXMnIHByb3BlcnR5IG9mIGEgUHJveHkncyBoYW5kbGVy
IHNob3VsZCBiZSBjYWxsYWJsZSJfcyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gdGhpcy0+dGFyZ2V0KCk7CisgICAgRW51
bWVyYXRpb25Nb2RlIGVudW1lcmF0aW9uTW9kZShEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNs
dWRlKTsKICAgICBpZiAob3duS2V5c01ldGhvZC5pc1VuZGVmaW5lZCgpKSB7CiAgICAgICAgIHNj
b3BlLnJlbGVhc2UoKTsKICAgICAgICAgdGFyZ2V0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blBy
b3BlcnR5TmFtZXModGFyZ2V0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZXMsIGVudW1lcmF0
aW9uTW9kZSk7CkBAIC05NTAsMTAgKzk1MSw5IEBAIHZvaWQgUHJveHlPYmplY3Q6OnBlcmZvcm1H
ZXRPd25Qcm9wZXJ0eU4KICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CiAgICAg
YXJndW1lbnRzLmFwcGVuZCh0YXJnZXQpOwogICAgIEFTU0VSVCghYXJndW1lbnRzLmhhc092ZXJm
bG93ZWQoKSk7Ci0gICAgSlNWYWx1ZSBhcnJheUxpa2VPYmplY3QgPSBjYWxsKGdsb2JhbE9iamVj
dCwgb3duS2V5c01ldGhvZCwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVudHMp
OworICAgIEpTVmFsdWUgdHJhcFJlc3VsdCA9IGNhbGwoZ2xvYmFsT2JqZWN0LCBvd25LZXlzTWV0
aG9kLCBjYWxsVHlwZSwgY2FsbERhdGEsIGhhbmRsZXIsIGFyZ3VtZW50cyk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFByb3BlcnR5TmFtZUFycmF5IHRy
YXBSZXN1bHQodm0sIHByb3BlcnR5TmFtZXMucHJvcGVydHlOYW1lTW9kZSgpLCBwcm9wZXJ0eU5h
bWVzLnByaXZhdGVTeW1ib2xNb2RlKCkpOwogICAgIEhhc2hTZXQ8VW5pcXVlZFN0cmluZ0ltcGwq
PiB1bmNoZWNrZWRSZXN1bHRLZXlzOwogICAgIHsKICAgICAgICAgSGFzaFNldDxSZWZQdHI8VW5p
cXVlZFN0cmluZ0ltcGw+PiBzZWVuS2V5czsKQEAgLTk5NSwxMiArOTk1LDEyIEBAIHZvaWQgUHJv
eHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU4KICAgICAgICAgICAgICAgICByZXR1cm4g
ZG9udEV4aXRFYXJseTsKIAogICAgICAgICAgICAgdW5jaGVja2VkUmVzdWx0S2V5cy5hZGQoaWRl
bnQuaW1wbCgpKTsKLSAgICAgICAgICAgIHRyYXBSZXN1bHQuYWRkKGlkZW50LmltcGwoKSk7Cisg
ICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChpZGVudC5pbXBsKCkpOwogICAgICAgICAgICAg
cmV0dXJuIGRvbnRFeGl0RWFybHk7CiAgICAgICAgIH07CiAKICAgICAgICAgUnVudGltZVR5cGVN
YXNrIGRvbnRUaHJvd0FuRXhjZXB0aW9uVHlwZUZpbHRlciA9IFR5cGVTdHJpbmcgfCBUeXBlU3lt
Ym9sOwotICAgICAgICBjcmVhdGVMaXN0RnJvbUFycmF5TGlrZShnbG9iYWxPYmplY3QsIGFycmF5
TGlrZU9iamVjdCwgZG9udFRocm93QW5FeGNlcHRpb25UeXBlRmlsdGVyLCAiUHJveHkgaGFuZGxl
cidzICdvd25LZXlzJyBtZXRob2QgbXVzdCByZXR1cm4gYW4gb2JqZWN0Il9zLCAiUHJveHkgaGFu
ZGxlcidzICdvd25LZXlzJyBtZXRob2QgbXVzdCByZXR1cm4gYW4gYXJyYXktbGlrZSBvYmplY3Qg
Y29udGFpbmluZyBvbmx5IFN0cmluZ3MgYW5kIFN5bWJvbHMiX3MsIGFkZFByb3BOYW1lKTsKKyAg
ICAgICAgY3JlYXRlTGlzdEZyb21BcnJheUxpa2UoZ2xvYmFsT2JqZWN0LCB0cmFwUmVzdWx0LCBk
b250VGhyb3dBbkV4Y2VwdGlvblR5cGVGaWx0ZXIsICJQcm94eSBoYW5kbGVyJ3MgJ293bktleXMn
IG1ldGhvZCBtdXN0IHJldHVybiBhbiBvYmplY3QiX3MsICJQcm94eSBoYW5kbGVyJ3MgJ293bktl
eXMnIG1ldGhvZCBtdXN0IHJldHVybiBhbiBhcnJheS1saWtlIG9iamVjdCBjb250YWluaW5nIG9u
bHkgU3RyaW5ncyBhbmQgU3ltYm9scyJfcywgYWRkUHJvcE5hbWUpOwogICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAgIH0KIApAQCAtMTA1MiwyOSArMTA1Miwz
NiBAQCB2b2lkIFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Cit9CiAKLSAgICBpZiAoIWVudW1lcmF0aW9uTW9k
ZS5pbmNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKCkpIHsKLSAgICAgICAgLy8gRmlsdGVyaW5nIERv
bnRFbnVtIHByb3BlcnRpZXMgaXMgb2JzZXJ2YWJsZSBpbiBwcm94aWVzIGFuZCBtdXN0IG9jY3Vy
IGZvbGxvd2luZyB0aGUgaW52YXJpYW50IGNoZWNrcyBhYm92ZS4KLSAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0cmFwUmVzdWx0KSB7Ci0gICAgICAgICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3du
UHJvcGVydHkpOwotICAgICAgICAgICAgYXV0byByZXN1bHQgPSBnZXRPd25Qcm9wZXJ0eVNsb3RD
b21tb24oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKHNsb3QuYXR0cmli
dXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQocHJvcGVydHlOYW1lLmltcGwo
KSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBy
b3BlcnR5TmFtZSA6IHRyYXBSZXN1bHQpCi0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChw
cm9wZXJ0eU5hbWUuaW1wbCgpKTsKK3ZvaWQgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25FbnVt
ZXJhYmxlUHJvcGVydHlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAg
UHJvcGVydHlOYW1lQXJyYXkgdW5maWx0ZXJlZE5hbWVzKHZtLCBwcm9wZXJ0eU5hbWVzLnByb3Bl
cnR5TmFtZU1vZGUoKSwgcHJvcGVydHlOYW1lcy5wcml2YXRlU3ltYm9sTW9kZSgpKTsKKyAgICBw
ZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhnbG9iYWxPYmplY3QsIHVuZmlsdGVyZWROYW1lcyk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICAvLyBGaWx0ZXJp
bmcgRG9udEVudW0gcHJvcGVydGllcyBpcyBvYnNlcnZhYmxlIGluIHByb3hpZXMgYW5kIG11c3Qg
b2NjdXIgYWZ0ZXIgdGhlIGludmFyaWFudCBjaGVja3MgcGFzcy4KKyAgICBmb3IgKGNvbnN0IGF1
dG8mIHByb3BlcnR5TmFtZSA6IHVuZmlsdGVyZWROYW1lcykgeworICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJv
cGVydHkpOworICAgICAgICBhdXRvIGlzUHJvcGVydHlEZWZpbmVkID0gZ2V0T3duUHJvcGVydHlT
bG90Q29tbW9uKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICAgICAgaWYgKCFpc1Byb3BlcnR5
RGVmaW5lZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoc2xvdC5hdHRyaWJ1
dGVzKCkgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQocHJvcGVydHlOYW1lLmltcGwoKSk7CiAgICAg
fQogfQogCiB2b2lkIFByb3h5T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBv
YmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVBcnJheSwgRW51bWVyYXRpb25Nb2RlIGVudW1lcmF0aW9uTW9kZSkKIHsKICAg
ICBQcm94eU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KG9iamVjdCk7
Ci0gICAgdGhpc09iamVjdC0+cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWVBcnJheSwgZW51bWVyYXRpb25Nb2RlKTsKKyAgICBpZiAoZW51bWVyYXRp
b25Nb2RlLmluY2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkKKyAgICAgICAgdGhpc09iamVjdC0+
cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWVBcnJh
eSk7CisgICAgZWxzZQorICAgICAgICB0aGlzT2JqZWN0LT5wZXJmb3JtR2V0T3duRW51bWVyYWJs
ZVByb3BlcnR5TmFtZXMoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWVBcnJheSk7CiB9CiAKIHZv
aWQgUHJveHlPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZUFy
cmF5LCBFbnVtZXJhdGlvbk1vZGUgZW51bWVyYXRpb25Nb2RlKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCShyZXZpc2lvbiAyNTQwNTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTAsNyArMTEwLDggQEAgcHJpdmF0ZToKICAgICBib29sIHBlcmZvcm1QcmV2ZW50RXh0
ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCopOwogICAgIGJvb2wgcGVyZm9ybUlzRXh0ZW5zaWJsZShK
U0dsb2JhbE9iamVjdCopOwogICAgIGJvb2wgcGVyZm9ybURlZmluZU93blByb3BlcnR5KEpTR2xv
YmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29s
IHNob3VsZFRocm93KTsKLSAgICB2b2lkIHBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xv
YmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOworICAgIHZv
aWQgcGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5h
bWVBcnJheSYpOworICAgIHZvaWQgcGVyZm9ybUdldE93bkVudW1lcmFibGVQcm9wZXJ0eU5hbWVz
KEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKICAgICBib29sIHBlcmZvcm1T
ZXRQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgYm9vbCBzaG91
bGRUaHJvd0lmQ2FudFNldCk7CiAKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1fdGFyZ2V0
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>