<?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>207417</bug_id>
          
          <creation_ts>2020-02-07 16:28:21 -0800</creation_ts>
          <short_desc>An SVG animated property animator can stop animation while other animators are still running</short_desc>
          <delta_ts>2020-05-26 21:01:25 -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>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wen Xu">tarafans7</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>pdr</cc>
    
    <cc>product-security</cc>
    
    <cc>rniwa</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tarafans7</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1616449</commentid>
    <comment_count>0</comment_count>
    <who name="Wen Xu">tarafans7</who>
    <bug_when>2020-02-07 16:28:21 -0800</bug_when>
    <thetext>A crash that can be reproduced with both master branch and Safari release.

PoC:

&lt;svg id=&quot;v6&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&lt;clipPath id=&quot;v54&quot;&gt;
  &lt;animate id=&quot;v55&quot; attributeName=&quot;clipPathUnits&quot;&gt;&lt;/animate&gt;
  &lt;set id=&quot;v57&quot; attributeName=&quot;clipPathUnits&quot; max=&quot;1s&quot; min=&quot;0s&quot; repeatCount=&quot;256&quot; tabindex=&quot;2&quot;&gt;&lt;/set&gt;
  &lt;set id=&quot;v63&quot; attributeName=&quot;clipPathUnits&quot;&gt;&lt;/set&gt;
&lt;/clipPath&gt;
&lt;/svg&gt;

Log:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==76736==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x00048898088b bp 0x7ffee5d45bd0 sp 0x7ffee5d45b20 T0)
==76736==The signal is caused by a READ memory access.
==76736==Hint: address points to the zero page.
==76736==WARNING: invalid path to external symbolizer!
==76736==WARNING: Failed to use and restart external symbolizer!
    #0 0x48898088a in void WebCore::SVGAnimatedDecoratedProperty&lt;WebCore::SVGDecoratedEnumeration, unsigned int&gt;::setAnimVal&lt;WebCore::SVGUnitTypes::SVGUnitType&gt;(WebCore::SVGUnitTypes::SVGUnitType const&amp;) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x4e7288a)
    #1 0x48897fd61 in WebCore::SVGAnimatedEnumerationAnimator&lt;WebCore::SVGUnitTypes::SVGUnitType&gt;::animate(WebCore::SVGElement*, float, unsigned int) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x4e71d61)
    #2 0x48891b0fb in WebCore::SVGAnimateElementBase::calculateAnimatedValue(float, unsigned int) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x4e0d0fb)
    #3 0x488957844 in WebCore::SVGAnimationElement::updateAnimation(float, unsigned int) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x4e49844)
    #4 0x488da09b5 in WebCore::SVGSMILElement::progress(WebCore::SMILTime, WebCore::SVGSMILElement&amp;, bool) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x52929b5)
    #5 0x488db3405 in auto WebCore::SMILTimeContainer::updateAnimations(WebCore::SMILTime, bool)::$_2::operator()&lt;WebCore::SVGSMILElement&gt;(WebCore::SVGSMILElement*) const (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x52a5405)
    #6 0x488d961ca in WebCore::SMILTimeContainer::processAnimations(WTF::Vector&lt;WebCore::SVGSMILElement*, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;, WTF::Function&lt;void (WebCore::SVGSMILElement*)&gt;&amp;&amp;) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x52881ca)
    #7 0x488d949ab in WebCore::SMILTimeContainer::updateAnimations(WebCore::SMILTime, bool) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x52869ab)
    #8 0x488d93160 in WebCore::SMILTimeContainer::timerFired() (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x5285160)
    #9 0x487c452c6 in WebCore::ThreadTimers::sharedTimerFiredInternal() (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x41372c6)
    #10 0x487cbc77e in WebCore::timerFired(__CFRunLoopTimer*, void*) (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x41ae77e)
    #11 0x7fff2f251803 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64h+0x9f803)
    #12 0x7fff2f2513bd in __CFRunLoopDoTimer (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64h+0x9f3bd)
    #13 0x7fff2f250e9d in __CFRunLoopDoTimers (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64h+0x9ee9d)
    #14 0x7fff2f235aec in __CFRunLoopRun (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64h+0x83aec)
    #15 0x7fff2f234bd2 in CFRunLoopRunSpecific (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64h+0x82bd2)
    #16 0x7fff318d81a7 in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] (/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation:x86_64+0x611a7)
    #17 0x7fff3198bd8a in -[NSRunLoop(NSRunLoop) run] (/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation:x86_64+0x114d8a)
    #18 0x7fff66b290e0 in _xpc_objc_main.cold.4 (/usr/lib/system/libxpc.dylib:x86_64+0x170e0)
    #19 0x7fff66b29026 in _xpc_objc_main (/usr/lib/system/libxpc.dylib:x86_64+0x17026)
    #20 0x7fff66b28b59 in xpc_main (/usr/lib/system/libxpc.dylib:x86_64+0x16b59)
    #21 0x47898d4c5 in WebKit::XPCServiceMain(int, char const**) (/Users/test/workspace/webkit/WebKitBuild/Release/WebKit.framework/Versions/A/WebKit:x86_64+0x98d4c5)
    #22 0x7fff668da7fc in start (/usr/lib/system/libdyld.dylib:x86_64+0x1a7fc)

==76736==Register values:
rax = 0x0000100000000000  rbx = 0x00007ffee5d45b60  rcx = 0x00000000e5d45b03  rdx = 0x00001fffdcba8b04
rdi = 0x0000000000000000  rsi = 0x00007ffee5d45b40  rbp = 0x00007ffee5d45bd0  rsp = 0x00007ffee5d45b20
 r8 = 0x0000100000000000   r9 = 0x00000fffffffffff  r10 = 0x0000000000000000  r11 = 0xffffffffffffffff
r12 = 0x0000606000053028  r13 = 0x00007ffee5d45b20  r14 = 0x0000000000000000  r15 = 0x00001fffdcba8b64
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/Users/test/workspace/webkit/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore:x86_64+0x4e7288a) in void WebCore::SVGAnimatedDecoratedProperty&lt;WebCore::SVGDecoratedEnumeration, unsigned int&gt;::setAnimVal&lt;WebCore::SVGUnitTypes::SVGUnitType&gt;(WebCore::SVGUnitTypes::SVGUnitType const&amp;)
==76736==ABORTING
2020-02-07 19:20:31.663 MiniBrowser[76735:774496] WebContent process crashed; reloading

it seems that updateAnimation is called after stopAnimation, and |m_animVal| has already become null. is this a racing?


Reported by Wen Xu from SSLab at Georgia Tech.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616450</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-07 16:28:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/59278306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617240</commentid>
    <comment_count>2</comment_count>
      <attachid>390330</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-02-10 18:04:44 -0800</bug_when>
    <thetext>Created attachment 390330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635000</commentid>
    <comment_count>3</comment_count>
      <attachid>390330</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-03-27 14:36:15 -0700</bug_when>
    <thetext>Comment on attachment 390330
Patch

Will post a cleaner patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635014</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-27 15:03:51 -0700</bug_when>
    <thetext>There is no security implication here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654255</commentid>
    <comment_count>5</comment_count>
      <attachid>399788</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-19 17:34:28 -0700</bug_when>
    <thetext>Created attachment 399788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654256</commentid>
    <comment_count>6</comment_count>
      <attachid>399789</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-19 17:36:33 -0700</bug_when>
    <thetext>Created attachment 399789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656249</commentid>
    <comment_count>7</comment_count>
      <attachid>400293</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-05-26 19:04:32 -0700</bug_when>
    <thetext>Created attachment 400293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656283</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-26 21:01:23 -0700</bug_when>
    <thetext>Committed r262175: &lt;https://trac.webkit.org/changeset/262175&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400293.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390330</attachid>
            <date>2020-02-10 18:04:44 -0800</date>
            <delta_ts>2020-05-19 17:34:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207417-20200210180443.patch</filename>
            <type>text/plain</type>
            <size>7681</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NjIzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAyLTEwICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIGFu
aW1hdGVkIHByb3BlcnR5IGFuaW1hdG9yIGNhbiBzdG9wIGFuaW1hdGlvbiB3aGlsZSBvdGhlciBh
bmltYXRvcnMgYXJlIHN0aWxsIHJ1bm5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIFNWRyBhbmltYXRlZCBwcm9wZXJ0eSBjYW4gYmUgYW5pbWF0
ZWQgYnkgbXVsdGlwbGUgYW5pbWF0b3JzLiBPbiBvZiB0aGVtCisgICAgICAgIGNhbiBzdG9wIHRo
ZSBhbmltYXRpb24gd2hlbiBpdHMgbWF4aW11bSB0aW1lIGR1cmF0aW9uIGlzIGVsYXBzZWQuIFRo
ZQorICAgICAgICBhbmltYXRlZCBwcm9wZXJ0eSBzaG91bGQga2VlcCB0cmFjayBvZiB0aGUgc3Rh
cnQoKSBhbmQgc3RvcCgpIG9mIGFuaW1hdGlvbi4KKyAgICAgICAgVGhlIGFuaW1hdGVkIHByb3Bl
cnR5IHNob3VsZCBzdG9wIGFuaW1hdGlvbiB3aGVuIHRoZSBjb3VudCByZWFjaGVzIHplcm8uCisK
KyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWVudW0tbXV0aXBsZS1hbmlt
YXRvcnMuc3ZnCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5ndGgt
bXV0aXBsZS1hbmltYXRvcnMuc3ZnCisKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZERlY29yYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIEtlZXAgdGhlIG1fYW5pbVZhbCBhbGl2
ZSBpZiBpdCBpcyBjcmVhdGVkLiBXZSB0aGUgc2FtZSB0aGluZyBmb3IKKyAgICAgICAgU1ZHQW5p
bWF0ZWRWYWx1ZVByb3BlcnR5IGFuZCBTVkdBbmltYXRlZFByb3BlcnR5TGlzdC4KKworICAgICAg
ICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OmlzQW5pbWF0aW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0b3BBbmltYXRpb24p
OgorCiAyMDIwLTAyLTEwICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGp1c3QgdGhlIG1pbm9yIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgZGVza3RvcCB1c2Vy
IGFnZW50IHN0cmluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29yYXRlZFByb3BlcnR5LmgJKHJldmlzaW9uIDI1
NjE5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3Jh
dGVkUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDE2ICsxMTgsMTYgQEAgcHVibGlj
OgogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBhbmltYXRpb24uCiAgICAgdm9pZCBzdGFydEFuaW1h
dGlvbigpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBpZiAoaXNBbmltYXRpbmcoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV9hbmltVmFsID0gbV9iYXNlVmFsLT5jbG9uZSgpOwor
ICAgICAgICBpZiAobV9hbmltVmFsKQorICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZSht
X2Jhc2VWYWwtPnZhbHVlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2FuaW1WYWwg
PSBtX2Jhc2VWYWwtPmNsb25lKCk7CiAgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0
QW5pbWF0aW9uKCk7CiAgICAgfQogICAgIHZvaWQgc3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCiAg
ICAgewotICAgICAgICBpZiAoIWlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIG1fYW5pbVZhbCA9IG51bGxwdHI7CisgICAgICAgIGlmIChtX2FuaW1WYWwpCisgICAg
ICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7CiAgICAgICAg
IFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
LmgJKHJldmlzaW9uIDI1NjE5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTMgKzUyLDEzIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSB7IHJldHVy
biBXVEY6Om51bGxvcHQ7IH0KICAgICAKICAgICAvLyBDb250cm9sIHRoZSBhbmltYXRpb24gbGlm
ZSBjeWNsZS4KLSAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1h
dGluZzsgfQotICAgIHZpcnR1YWwgdm9pZCBzdGFydEFuaW1hdGlvbigpIHsgbV9pc0FuaW1hdGlu
ZyA9IHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1hdGlvbigpIHsgbV9pc0FuaW1h
dGluZyA9IGZhbHNlOyB9CisgICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
YWN0aXZlQW5pbWF0b3JzOyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKCkgeyAr
K21fYWN0aXZlQW5pbWF0b3JzOyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKSB7
IEFTU0VSVChtX2FjdGl2ZUFuaW1hdG9ycyk7IC0tbV9hY3RpdmVBbmltYXRvcnM7IH0KICAgICAK
ICAgICAvLyBBdHRhY2gvRGV0YWNoIHRoZSBhbmltVmFsIG9mIHRoZSB0cmFnZXQgZWxlbWVudCdz
IHByb3BlcnR5IGJ5IHRoZSBpbnN0YW5jZSBlbGVtZW50J3MgcHJvcGVydHkuCi0gICAgdmlydHVh
bCB2b2lkIGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpIHsgbV9p
c0FuaW1hdGluZyA9IHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW5zdGFuY2VTdG9wQW5pbWF0
aW9uKCkgeyBtX2lzQW5pbWF0aW5nID0gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW5zdGFu
Y2VTdGFydEFuaW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JikgeyBTVkdBbmltYXRlZFByb3Bl
cnR5OjpzdGFydEFuaW1hdGlvbigpOyB9CisgICAgdmlydHVhbCB2b2lkIGluc3RhbmNlU3RvcEFu
aW1hdGlvbigpIHsgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbigpOyB9CiAgICAg
CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCkKQEAgLTcwLDcgKzcwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY29tbWl0UHJv
cGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKICAgICAKICAgICBTVkdFbGVtZW50
KiBtX2NvbnRleHRFbGVtZW50IHsgbnVsbHB0ciB9OwotICAgIGJvb2wgbV9pc0FuaW1hdGluZyB7
IGZhbHNlIH07CisgICAgdW5zaWduZWQgbV9hY3RpdmVBbmltYXRvcnMgeyAwIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTYxOTIpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0w
Mi0xMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAg
ICAgIEFuIFNWRyBhbmltYXRlZCBwcm9wZXJ0eSBhbmltYXRvciBjYW4gc3RvcCBhbmltYXRpb24g
d2hpbGUgb3RoZXIgYW5pbWF0b3JzIGFyZSBzdGlsbCBydW5uaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVk
LWVudW0tbXV0aXBsZS1hbmltYXRvcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLnN2ZzogQWRkZWQu
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0
b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3JzLnN2ZzogQWRkZWQuCisKIDIwMjAtMDItMTAgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
YWNoYWJsZSBjb2RlIGhpdCBpbiBXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlU2hhcGUKSW5kZXg6IExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWVudW0tbXV0aXBsZS1hbmltYXRvcnMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGVkLWVudW0tbXV0aXBsZS1hbmltYXRvcnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWVudW0tbXV0aXBsZS1hbmlt
YXRvcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKK1Bhc3NlcyBp
ZiBpdCBkb2VzIG5vdCBjcmFzaC4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGVkLWVudW0tbXV0aXBsZS1hbmltYXRvcnMuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWVudW0tbXV0aXBsZS1hbmltYXRvcnMuc3ZnCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWVudW0t
bXV0aXBsZS1hbmltYXRvcnMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIgQEAKKzxz
dmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8Y2xpcFBhdGg+Cisg
ICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImNsaXBQYXRoVW5pdHMiLz4KKyAgICAgICAg
PHNldCBhdHRyaWJ1dGVOYW1lPSJjbGlwUGF0aFVuaXRzIiBtYXg9IjUwbXMiIG9uZW5kPSJvbkVu
ZCgpIi8+CisgICAgICAgIDxzZXQgYXR0cmlidXRlTmFtZT0iY2xpcFBhdGhVbml0cyIvPgorICAg
IDwvY2xpcFBhdGg+CisgICAgPHRleHQgeD0iMTAiIHk9IjIwIj5QYXNzZXMgaWYgaXQgZG9lcyBu
b3QgY3Jhc2guPC90ZXh0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIG9uRW5kKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFuaW1hdG9ycy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3Ro
LW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0aXBsZS1hbmltYXRvcnMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKK1Bhc3NlcyBpZiBpdCBkb2Vz
IG5vdCBjcmFzaC4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxl
bmd0aC1tdXRpcGxlLWFuaW1hdG9ycy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3JzLnN2Zwkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0
aXBsZS1hbmltYXRvcnMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIgQEAKKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdD4KKyAgICAgICAg
PGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieCIvPgorICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9
IngiIG1heD0iNTBtcyIgb25lbmQ9Im9uRW5kKCkiLz4KKyAgICAgICAgPHNldCBhdHRyaWJ1dGVO
YW1lPSJ4Ii8+CisgICAgPC9yZWN0PgorICAgIDx0ZXh0IHg9IjEwIiB5PSIyMCI+UGFzc2VzIGlm
IGl0IGRvZXMgbm90IGNyYXNoLjwvdGV4dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBvbkVuZCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399788</attachid>
            <date>2020-05-19 17:34:28 -0700</date>
            <delta_ts>2020-05-19 17:36:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207417-20200519173427.patch</filename>
            <type>text/plain</type>
            <size>17368</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTg5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA1LTE5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIGFu
aW1hdGVkIHByb3BlcnR5IGFuaW1hdG9yIGNhbiBzdG9wIGFuaW1hdGlvbiB3aGlsZSBvdGhlciBh
bmltYXRvcnMgYXJlIHN0aWxsIHJ1bm5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFuIFNWRyBhbmltYXRlZCBwcm9wZXJ0eSBjYW4gYmUgYW5pbWF0
ZWQgYnkgbXVsdGlwbGUgYW5pbWF0b3JzLiBXaGVuIG9uZQorICAgICAgICBhbmltYXRvciBzdG9w
cyB0aGUgYW5pbWF0aW9uLCB0aGUgYW5pbVZhbCBzaG91bGQgbm90IGJlIGRlbGV0ZWQgc2luY2Ug
aXQKKyAgICAgICAgd2lsbCBiZSB1c2VkIGJ5IG90aGVyIGFuaW1hdG9ycy4KKworICAgICAgICBT
VkdBbmltYXRlZFByb3BlcnR5IHdpbGwgbWFpbnRhaW4gYSBXZWFrSGFzaFNldDxTVkdBdHRyaWJ1
dGVBbmltYXRvcj4gaW4KKyAgICAgICAgd2hpY2ggdGhlIGFuaW1hdG9yIHdpbGwgYmUgYWRkZWQg
d2hlbiB0aGUgYW5pbWF0aW9uIHN0YXJ0cyBhbmQgd2lsbCBiZSAKKyAgICAgICAgcmVtb3ZlZCB3
aGVuIHRoZSB0aGUgYW5pbWF0aW9uIHN0b3BzLiBXaGVuIGFsbCB0aGUgYW5pbWF0b3JzIHN0b3Bz
IHRoZWlyCisgICAgICAgIGFuaW1hdGlvbnMsIHRoZSBhbmltYXRlZCBwcm9wZXJ0eSBtYXkgZGVs
ZXRlIHRoZSBhbmltVmFsIG9yIGtlZXAgaXQgaWYgaXQKKyAgICAgICAgY2FuIGJlIHJlZmVyZW5j
ZWQgYnkgSmF2YVNjcmlwdC4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtZW51bS1tdXRpcGxlLWFuaW1hdG9ycy5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRp
b25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFuaW1hdG9ycy5zdmcKKworICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aXNBbmltYXRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RvcEFuaW1hdGlvbik6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoKKyAgICAg
ICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5oOgorCiAyMDIwLTA1LTE5ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgSURCUmVxdWVzdERh
dGEgYW5kIElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24gc2hvdWxkIGluaXRpYWxpemUg
SW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgZmllbGQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29yYXRlZFByb3Bl
cnR5LmgJKHJldmlzaW9uIDI2MTg4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDMy
ICsxMTYsMzggQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBhbmlt
YXRpb24uCi0gICAgdm9pZCBzdGFydEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBzdGFy
dEFuaW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAg
ewotICAgICAgICBpZiAoaXNBbmltYXRpbmcoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgbV9hbmltVmFsID0gbV9iYXNlVmFsLT5jbG9uZSgpOwotICAgICAgICBTVkdBbmltYXRlZFBy
b3BlcnR5OjpzdGFydEFuaW1hdGlvbigpOworICAgICAgICBpZiAobV9hbmltVmFsKQorICAgICAg
ICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX2FuaW1WYWwgPSBtX2Jhc2VWYWwtPmNsb25lKCk7CisgICAgICAg
IFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKGFuaW1hdG9yKTsKICAgICB9Ci0g
ICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIHN0b3BBbmltYXRpb24o
U1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAg
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbihhbmltYXRvcik7CiAgICAgICAgIGlm
ICghaXNBbmltYXRpbmcoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9hbmltVmFs
ID0gbnVsbHB0cjsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbigp
OworICAgICAgICAgICAgbV9hbmltVmFsID0gbnVsbHB0cjsKKyAgICAgICAgZWxzZSBpZiAobV9h
bmltVmFsKQorICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwtPnZhbHVl
KCkpOwogICAgIH0KIAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBpbnN0YW5jZSBhbmltYXRpb24u
Ci0gICAgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFu
aW1hdGVkKSBvdmVycmlkZQorICAgIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdBdHRy
aWJ1dGVBbmltYXRvciYgYW5pbWF0b3IsIFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkKSBv
dmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKGlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIG1fYW5pbVZhbCA9IHN0YXRpY19jYXN0PGRlY2x0eXBlKCp0aGlzKT4o
YW5pbWF0ZWQpLm1fYW5pbVZhbDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFu
Y2VTdGFydEFuaW1hdGlvbihhbmltYXRlZCk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6
Omluc3RhbmNlU3RhcnRBbmltYXRpb24oYW5pbWF0b3IsIGFuaW1hdGVkKTsKICAgICB9CiAKLSAg
ICB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBpbnN0YW5j
ZVN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVycmlkZQog
ICAgIHsKKyAgICAgICAgaWYgKCFpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBtX2FuaW1WYWwgPSBudWxscHRyOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5
OjppbnN0YW5jZVN0b3BBbmltYXRpb24oKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
aW5zdGFuY2VTdG9wQW5pbWF0aW9uKGFuaW1hdG9yKTsKICAgICB9CiAKIHByb3RlY3RlZDoKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJv
cGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmgJKHJldmlzaW9uIDI2MTg4MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaAkod29y
a2luZyBjb3B5KQpAQCAtOTksMzcgKzk5LDM5IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBD
b250cm9sbGluZyB0aGUgYW5pbWF0aW9uLgotICAgIHZvaWQgc3RhcnRBbmltYXRpb24oKSBvdmVy
cmlkZQorICAgIHZvaWQgc3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1h
dG9yKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAg
IG1fYW5pbVZhbC0+c2V0VmFsdWUobV9iYXNlVmFsLT52YWx1ZSgpKTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgZW5zdXJlQW5pbVZhbCgpOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5
OjpzdGFydEFuaW1hdGlvbigpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdGFydEFu
aW1hdGlvbihhbmltYXRvcik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgb3Zl
cnJpZGUKKyAgICB2b2lkIHN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1h
dG9yKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgaWYgKG1fYW5pbVZhbCkKKyAgICAgICAgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbihhbmltYXRvcik7CisgICAgICAgIGlmICgh
aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IG51bGxwdHI7CisgICAgICAg
IGVsc2UgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAgIG1fYW5pbVZhbC0+c2V0VmFsdWUobV9i
YXNlVmFsLT52YWx1ZSgpKTsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1h
dGlvbigpOwogICAgIH0KIAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBpbnN0YW5jZSBhbmltYXRp
b24uCi0gICAgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0FuaW1hdGVkUHJvcGVydHkm
IGFuaW1hdGVkKSBvdmVycmlkZQorICAgIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdB
dHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IsIFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVk
KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGlzQW5pbWF0aW5nKCkpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIG1fYW5pbVZhbCA9IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVkUHJp
bWl0aXZlUHJvcGVydHkmPihhbmltYXRlZCkubV9hbmltVmFsOwotICAgICAgICBTVkdBbmltYXRl
ZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1hdGVkKTsKKyAgICAgICAgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbihhbmltYXRvciwgYW5pbWF0
ZWQpOwogICAgIH0KIAotICAgIHZvaWQgaW5zdGFuY2VTdG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUK
KyAgICB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5p
bWF0b3IpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIWlzQW5pbWF0aW5nKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIG1fYW5pbVZhbCA9IG51bGxwdHI7Ci0gICAgICAgIFNW
R0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RvcEFuaW1hdGlvbigpOworICAgICAgICBTVkdB
bmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0b3BBbmltYXRpb24oYW5pbWF0b3IpOwogICAgIH0K
IAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAkocmV2aXNpb24gMjYxODgxKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw5ICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNWR0F0dHJp
YnV0ZUFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlPd25lci5oIgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDEzICs1NCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9
CiAgICAgCiAgICAgLy8gQ29udHJvbCB0aGUgYW5pbWF0aW9uIGxpZmUgY3ljbGUuCi0gICAgYm9v
bCBpc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBbmltYXRpbmc7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oKSB7IG1faXNBbmltYXRpbmcgPSB0cnVlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKSB7IG1faXNBbmltYXRpbmcgPSBmYWxzZTsgfQor
ICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdG9ycy5jb21wdXRl
U2l6ZSgpOyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFu
aW1hdG9yJiBhbmltYXRvcikgeyBtX2FuaW1hdG9ycy5hZGQoYW5pbWF0b3IpOyB9CisgICAgdmly
dHVhbCB2b2lkIHN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSB7
IG1fYW5pbWF0b3JzLnJlbW92ZShhbmltYXRvcik7IH0KICAgICAKICAgICAvLyBBdHRhY2gvRGV0
YWNoIHRoZSBhbmltVmFsIG9mIHRoZSB0cmFnZXQgZWxlbWVudCdzIHByb3BlcnR5IGJ5IHRoZSBp
bnN0YW5jZSBlbGVtZW50J3MgcHJvcGVydHkuCi0gICAgdmlydHVhbCB2b2lkIGluc3RhbmNlU3Rh
cnRBbmltYXRpb24oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpIHsgbV9pc0FuaW1hdGluZyA9IHRydWU7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW5zdGFuY2VTdG9wQW5pbWF0aW9uKCkgeyBtX2lzQW5pbWF0
aW5nID0gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlvbihT
VkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IsIFNWR0FuaW1hdGVkUHJvcGVydHkmKSB7IHN0
YXJ0QW5pbWF0aW9uKGFuaW1hdG9yKTsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnN0YW5jZVN0b3BB
bmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSB7IHN0b3BBbmltYXRpb24o
YW5pbWF0b3IpOyB9CiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eShT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKQEAgLTcwLDcgKzcyLDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKICAg
ICAKICAgICBTVkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50IHsgbnVsbHB0ciB9OwotICAgIGJv
b2wgbV9pc0FuaW1hdGluZyB7IGZhbHNlIH07CisgICAgV2Vha0hhc2hTZXQ8U1ZHQXR0cmlidXRl
QW5pbWF0b3I+IG1fYW5pbWF0b3JzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1h
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmgJKHJldmlzaW9uIDI2MTg4MSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OCw5ICs2OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnQoU1ZHRWxl
bWVudCopIG92ZXJyaWRlCiAgICAgewotICAgICAgICBtX2FuaW1hdGVkLT5zdGFydEFuaW1hdGlv
bigpOworICAgICAgICBtX2FuaW1hdGVkLT5zdGFydEFuaW1hdGlvbigqdGhpcyk7CiAgICAgICAg
IGZvciAoYXV0byYgaW5zdGFuY2UgOiBtX2FuaW1hdGVkSW5zdGFuY2VzKQotICAgICAgICAgICAg
aW5zdGFuY2UtPmluc3RhbmNlU3RhcnRBbmltYXRpb24obV9hbmltYXRlZCk7CisgICAgICAgICAg
ICBpbnN0YW5jZS0+aW5zdGFuY2VTdGFydEFuaW1hdGlvbigqdGhpcywgbV9hbmltYXRlZCk7CiAg
ICAgfQogCiAgICAgdm9pZCBhcHBseShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KSBvdmVycmlk
ZQpAQCAtODksOSArODksOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc0FuaW1hdGVkU3R5bGVQ
cm9wZXJ0eUFuaWFtdG9yKHRhcmdldEVsZW1lbnQpKQogICAgICAgICAgICAgcmVtb3ZlQW5pbWF0
ZWRTdHlsZVByb3BlcnR5KHRhcmdldEVsZW1lbnQpOwogCi0gICAgICAgIG1fYW5pbWF0ZWQtPnN0
b3BBbmltYXRpb24oKTsKKyAgICAgICAgbV9hbmltYXRlZC0+c3RvcEFuaW1hdGlvbigqdGhpcyk7
CiAgICAgICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBtX2FuaW1hdGVkSW5zdGFuY2VzKQotICAg
ICAgICAgICAgaW5zdGFuY2UtPmluc3RhbmNlU3RvcEFuaW1hdGlvbigpOworICAgICAgICAgICAg
aW5zdGFuY2UtPmluc3RhbmNlU3RvcEFuaW1hdGlvbigqdGhpcyk7CiAgICAgfQogCiAgICAgT3B0
aW9uYWw8ZmxvYXQ+IGNhbGN1bGF0ZURpc3RhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQs
IGNvbnN0IFN0cmluZyYgZnJvbSwgY29uc3QgU3RyaW5nJiB0bykgY29uc3Qgb3ZlcnJpZGUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUxpc3QuaAkocmV2aXNpb24gMjYxODgxKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
ODAsMzMgKzgwLDM0IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBDb250cm9sbGluZyB0aGUg
YW5pbWF0aW9uLgotICAgIHZvaWQgc3RhcnRBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHZvaWQg
c3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVycmlkZQog
ICAgIHsKLSAgICAgICAgaWYgKG1fYW5pbVZhbCkKLSAgICAgICAgICAgICptX2FuaW1WYWwgPSBt
X2Jhc2VWYWw7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGVuc3VyZUFuaW1WYWwoKTsKLSAg
ICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RhcnRBbmltYXRpb24oKTsKKyAgICAgICAgKmVu
c3VyZUFuaW1WYWwoKSA9IG1fYmFzZVZhbDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
c3RhcnRBbmltYXRpb24oYW5pbWF0b3IpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcEFuaW1hdGlv
bigpIG92ZXJyaWRlCisgICAgdm9pZCBzdG9wQW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9y
JiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6
OnN0b3BBbmltYXRpb24oYW5pbWF0b3IpOwogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAg
ICAgICAgKm1fYW5pbVZhbCA9IG1fYmFzZVZhbDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0
eTo6c3RvcEFuaW1hdGlvbigpOwogICAgIH0KIAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBpbnN0
YW5jZSBhbmltYXRpb24uCi0gICAgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0FuaW1h
dGVkUHJvcGVydHkmIGFuaW1hdGVkKSBvdmVycmlkZQorICAgIHZvaWQgaW5zdGFuY2VTdGFydEFu
aW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IsIFNWR0FuaW1hdGVkUHJvcGVy
dHkmIGFuaW1hdGVkKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKGlzQW5pbWF0aW5nKCkp
CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fYW5pbVZhbCA9IHN0YXRpY19jYXN0PFNW
R0FuaW1hdGVkUHJvcGVydHlMaXN0Jj4oYW5pbWF0ZWQpLmFuaW1WYWwoKTsKLSAgICAgICAgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbihhbmltYXRlZCk7CisgICAg
ICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RhcnRBbmltYXRpb24oYW5pbWF0b3Is
IGFuaW1hdGVkKTsKICAgICB9CiAKLSAgICB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbigpIG92
ZXJyaWRlCisgICAgdm9pZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0
b3ImIGFuaW1hdG9yKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKCFpc0FuaW1hdGluZygp
KQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2FuaW1WYWwgPSBudWxscHRyOwotICAg
ICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0b3BBbmltYXRpb24oKTsKKyAgICAg
ICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdG9wQW5pbWF0aW9uKGFuaW1hdG9yKTsK
ICAgICB9CiAKICAgICAvLyBWaXN1YWwgU3R1ZGlvIGRvZXNuJ3Qgc2VlbSB0byBzZWUgdGhlc2Ug
cHJpdmF0ZSBjb25zdHJ1Y3RvcnMgZnJvbSBzdWJjbGFzc2VzLgpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5
LmgJKHJldmlzaW9uIDI2MTg4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NiwzMyArOTYsMzQg
QEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBhbmltYXRpb24uCi0g
ICAgdm9pZCBzdGFydEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBzdGFydEFuaW1hdGlv
bihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgewotICAgICAg
ICBpZiAobV9hbmltVmFsKQotICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VW
YWwtPnZhbHVlKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBlbnN1cmVBbmltVmFsKCk7
Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKCk7CisgICAgICAg
IGVuc3VyZUFuaW1WYWwoKS0+c2V0VmFsdWUobV9iYXNlVmFsLT52YWx1ZSgpKTsKKyAgICAgICAg
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RhcnRBbmltYXRpb24oYW5pbWF0b3IpOwogICAgIH0KIAot
ICAgIHZvaWQgc3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBzdG9wQW5pbWF0aW9u
KFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7CisgICAgICAg
IFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oYW5pbWF0b3IpOwogICAgICAgICBp
ZiAobV9hbmltVmFsKQogICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwt
PnZhbHVlKCkpOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdG9wQW5pbWF0aW9uKCk7
CiAgICAgfQogCiAgICAgLy8gQ29udHJvbGxpbmcgdGhlIGluc3RhbmNlIGFuaW1hdGlvbi4KLSAg
ICB2b2lkIGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWQpIG92ZXJyaWRlCisgICAgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0
ZUFuaW1hdG9yJiBhbmltYXRvciwgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWQpIG92ZXJy
aWRlCiAgICAgeworICAgICAgICBpZiAoaXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgbV9hbmltVmFsID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZWRWYWx1ZVByb3Bl
cnR5Jj4oYW5pbWF0ZWQpLmFuaW1WYWwoKTsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
aW5zdGFuY2VTdGFydEFuaW1hdGlvbihhbmltYXRlZCk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJv
cGVydHk6Omluc3RhbmNlU3RhcnRBbmltYXRpb24oYW5pbWF0b3IsIGFuaW1hdGVkKTsKICAgICB9
CiAKLSAgICB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBp
bnN0YW5jZVN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVy
cmlkZQogICAgIHsKKyAgICAgICAgaWYgKCFpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBtX2FuaW1WYWwgPSBudWxscHRyOwotICAgICAgICBTVkdBbmltYXRlZFBy
b3BlcnR5OjppbnN0YW5jZVN0b3BBbmltYXRpb24oKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6aW5zdGFuY2VTdG9wQW5pbWF0aW9uKGFuaW1hdG9yKTsKICAgICB9CiAKIHByb3RlY3Rl
ZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1h
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0
cmlidXRlQW5pbWF0b3IuaAkocmV2aXNpb24gMjYxODgxKQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUyLDcgQEAgZW51
bSBjbGFzcyBDYWxjTW9kZSA6IHVpbnQ4X3QgewogICAgIFNwbGluZQogfTsKIAotY2xhc3MgU1ZH
QXR0cmlidXRlQW5pbWF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdBdHRyaWJ1dGVBbmltYXRv
cj4geworY2xhc3MgU1ZHQXR0cmlidXRlQW5pbWF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdB
dHRyaWJ1dGVBbmltYXRvcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTVkdBdHRyaWJ1dGVBbmlt
YXRvcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFNWR0F0
dHJpYnV0ZUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNjE4ODEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNS0xOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyBhbmltYXRlZCBwcm9wZXJ0
eSBhbmltYXRvciBjYW4gc3RvcCBhbmltYXRpb24gd2hpbGUgb3RoZXIgYW5pbWF0b3JzIGFyZSBz
dGlsbCBydW5uaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDc0MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWVudW0tbXV0aXBsZS1hbmltYXRvcnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVt
LW11dGlwbGUtYW5pbWF0b3JzLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMv
YW5pbWF0ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3Jz
LnN2ZzogQWRkZWQuCisKIDIwMjAtMDUtMTkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IFdlYktpdFRlc3RSdW5uZXIgdG8gcmVzZXQg
SVRQIHRvIHRoZSBtZW1vcnkgc3RvcmUgYmV0d2VlbiBhbGwgdGVzdHMuCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
ZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0b3Jz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxIEBACitQYXNzZXMgaWYgaXQg
ZG9lcyBub3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
ZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLnN2Zwkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlw
bGUtYW5pbWF0b3JzLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8c3ZnIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPGNsaXBQYXRoPgorICAgICAg
ICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJjbGlwUGF0aFVuaXRzIi8+CisgICAgICAgIDxzZXQg
YXR0cmlidXRlTmFtZT0iY2xpcFBhdGhVbml0cyIgbWF4PSI1MG1zIiBvbmVuZD0ib25FbmQoKSIv
PgorICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9ImNsaXBQYXRoVW5pdHMiLz4KKyAgICA8L2Ns
aXBQYXRoPgorICAgIDx0ZXh0IHg9IjEwIiB5PSIyMCI+UGFzc2VzIGlmIGl0IGRvZXMgbm90IGNy
YXNoLjwvdGV4dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICAgZnVuY3Rpb24g
b25FbmQoKSB7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0
aXBsZS1hbmltYXRvcnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFuaW1hdG9ycy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAorUGFzc2VzIGlmIGl0IGRvZXMgbm90
IGNyYXNoLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3Ro
LW11dGlwbGUtYW5pbWF0b3JzLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0aXBsZS1hbmltYXRvcnMuc3ZnCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxl
LWFuaW1hdG9ycy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxyZWN0PgorICAgICAgICA8YW5p
bWF0ZSBhdHRyaWJ1dGVOYW1lPSJ4Ii8+CisgICAgICAgIDxzZXQgYXR0cmlidXRlTmFtZT0ieCIg
bWF4PSI1MG1zIiBvbmVuZD0ib25FbmQoKSIvPgorICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9
IngiLz4KKyAgICA8L3JlY3Q+CisgICAgPHRleHQgeD0iMTAiIHk9IjIwIj5QYXNzZXMgaWYgaXQg
ZG9lcyBub3QgY3Jhc2guPC90ZXh0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAg
ICBmdW5jdGlvbiBvbkVuZCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399789</attachid>
            <date>2020-05-19 17:36:33 -0700</date>
            <delta_ts>2020-05-26 19:04:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207417-20200519173632.patch</filename>
            <type>text/plain</type>
            <size>17438</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTg5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA1LTE5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIGFu
aW1hdGVkIHByb3BlcnR5IGFuaW1hdG9yIGNhbiBzdG9wIGFuaW1hdGlvbiB3aGlsZSBvdGhlciBh
bmltYXRvcnMgYXJlIHN0aWxsIHJ1bm5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkyNzgz
MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQW4g
U1ZHIGFuaW1hdGVkIHByb3BlcnR5IGNhbiBiZSBhbmltYXRlZCBieSBtdWx0aXBsZSBhbmltYXRv
cnMuIFdoZW4gb25lCisgICAgICAgIGFuaW1hdG9yIHN0b3BzIHRoZSBhbmltYXRpb24sIHRoZSBh
bmltVmFsIHNob3VsZCBub3QgYmUgZGVsZXRlZCBzaW5jZSBpdAorICAgICAgICB3aWxsIGJlIHVz
ZWQgYnkgb3RoZXIgYW5pbWF0b3JzLgorCisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHkgd2ls
bCBtYWludGFpbiBhIFdlYWtIYXNoU2V0PFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBpbgorICAgICAg
ICB3aGljaCB0aGUgYW5pbWF0b3Igd2lsbCBiZSBhZGRlZCB3aGVuIHRoZSBhbmltYXRpb24gc3Rh
cnRzIGFuZCB3aWxsIGJlIAorICAgICAgICByZW1vdmVkIHdoZW4gdGhlIHRoZSBhbmltYXRpb24g
c3RvcHMuIFdoZW4gYWxsIHRoZSBhbmltYXRvcnMgc3RvcHMgdGhlaXIKKyAgICAgICAgYW5pbWF0
aW9ucywgdGhlIGFuaW1hdGVkIHByb3BlcnR5IG1heSBkZWxldGUgdGhlIGFuaW1WYWwgb3Iga2Vl
cCBpdCBpZiBpdAorICAgICAgICBjYW4gYmUgcmVmZXJlbmNlZCBieSBKYXZhU2NyaXB0LgorCisg
ICAgICAgIFRlc3RzOiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0
b3JzLnN2ZworICAgICAgICAgICAgICAgc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3RoLW11
dGlwbGUtYW5pbWF0b3JzLnN2ZworCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJpbWl0aXZlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpp
c0FuaW1hdGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5
OjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5
OjpzdG9wQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6
Omluc3RhbmNlU3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTo6aW5zdGFuY2VTdG9wQW5pbWF0aW9uKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0F0
dHJpYnV0ZUFuaW1hdG9yLmg6CisKIDIwMjAtMDUtMTkgIERhdmlkIEtpbHplciAgPGRka2lsemVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBJREJSZXF1ZXN0RGF0YSBhbmQgSURCQ2xpZW50OjpUcmFu
c2FjdGlvbk9wZXJhdGlvbiBzaG91bGQgaW5pdGlhbGl6ZSBJbmRleGVkREI6OkluZGV4UmVjb3Jk
VHlwZSBmaWVsZApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAkocmV2aXNpb24gMjYxODgx
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQ
cm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsMzIgKzExNiwzOCBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgLy8gQ29udHJvbGxpbmcgdGhlIGFuaW1hdGlvbi4KLSAgICB2b2lkIHN0YXJ0
QW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0
ZUFuaW1hdG9yJiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChpc0FuaW1h
dGluZygpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBtX2Jhc2VW
YWwtPmNsb25lKCk7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9u
KCk7CisgICAgICAgIGlmIChtX2FuaW1WYWwpCisgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZh
bHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYW5p
bVZhbCA9IG1fYmFzZVZhbC0+Y2xvbmUoKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
c3RhcnRBbmltYXRpb24oYW5pbWF0b3IpOwogICAgIH0KLSAgICB2b2lkIHN0b3BBbmltYXRpb24o
KSBvdmVycmlkZQorICAgIHZvaWQgc3RvcEFuaW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYg
YW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgeworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5Ojpz
dG9wQW5pbWF0aW9uKGFuaW1hdG9yKTsKICAgICAgICAgaWYgKCFpc0FuaW1hdGluZygpKQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBudWxscHRyOwotICAgICAgICBT
VkdBbmltYXRlZFByb3BlcnR5OjpzdG9wQW5pbWF0aW9uKCk7CisgICAgICAgICAgICBtX2FuaW1W
YWwgPSBudWxscHRyOworICAgICAgICBlbHNlIGlmIChtX2FuaW1WYWwpCisgICAgICAgICAgICBt
X2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7CiAgICAgfQogCiAgICAgLy8g
Q29udHJvbGxpbmcgdGhlIGluc3RhbmNlIGFuaW1hdGlvbi4KLSAgICB2b2lkIGluc3RhbmNlU3Rh
cnRBbmltYXRpb24oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWQpIG92ZXJyaWRlCisgICAg
dm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRv
ciwgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWQpIG92ZXJyaWRlCiAgICAgeworICAgICAg
ICBpZiAoaXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9hbmlt
VmFsID0gc3RhdGljX2Nhc3Q8ZGVjbHR5cGUoKnRoaXMpPihhbmltYXRlZCkubV9hbmltVmFsOwot
ICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1h
dGVkKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlv
bihhbmltYXRvciwgYW5pbWF0ZWQpOwogICAgIH0KIAotICAgIHZvaWQgaW5zdGFuY2VTdG9wQW5p
bWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbihTVkdBdHRy
aWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgeworICAgICAgICBpZiAoIWlz
QW5pbWF0aW5nKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fYW5pbVZhbCA9IG51
bGxwdHI7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RvcEFuaW1hdGlv
bigpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0b3BBbmltYXRpb24o
YW5pbWF0b3IpOwogICAgIH0KIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVy
dHkuaAkocmV2aXNpb24gMjYxODgxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OSwzNyAr
OTksMzkgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBhbmltYXRp
b24uCi0gICAgdm9pZCBzdGFydEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBzdGFydEFu
aW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgewog
ICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZSht
X2Jhc2VWYWwtPnZhbHVlKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBlbnN1cmVBbmlt
VmFsKCk7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKCk7Cisg
ICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKGFuaW1hdG9yKTsKICAg
ICB9CiAKLSAgICB2b2lkIHN0b3BBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHZvaWQgc3RvcEFu
aW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgewot
ICAgICAgICBpZiAobV9hbmltVmFsKQorICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdG9w
QW5pbWF0aW9uKGFuaW1hdG9yKTsKKyAgICAgICAgaWYgKCFpc0FuaW1hdGluZygpKQorICAgICAg
ICAgICAgbV9hbmltVmFsID0gbnVsbHB0cjsKKyAgICAgICAgZWxzZSBpZiAobV9hbmltVmFsKQog
ICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOwotICAg
ICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdG9wQW5pbWF0aW9uKCk7CiAgICAgfQogCiAgICAg
Ly8gQ29udHJvbGxpbmcgdGhlIGluc3RhbmNlIGFuaW1hdGlvbi4KLSAgICB2b2lkIGluc3RhbmNl
U3RhcnRBbmltYXRpb24oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWQpIG92ZXJyaWRlCisg
ICAgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmlt
YXRvciwgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWQpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBpZiAoaXNBbmltYXRpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9h
bmltVmFsID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eSY+KGFuaW1h
dGVkKS5tX2FuaW1WYWw7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3Rh
cnRBbmltYXRpb24oYW5pbWF0ZWQpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0
YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1hdG9yLCBhbmltYXRlZCk7CiAgICAgfQogCi0gICAgdm9p
ZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHZvaWQgaW5zdGFuY2VTdG9w
QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmICghaXNBbmltYXRpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgbV9hbmltVmFsID0gbnVsbHB0cjsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5z
dGFuY2VTdG9wQW5pbWF0aW9uKCk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3Rh
bmNlU3RvcEFuaW1hdGlvbihhbmltYXRvcik7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eS5oCShyZXZpc2lvbiAyNjE4ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDExIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU1ZHQXR0cmlidXRlQW5pbWF0b3IuaCIKICNpbmNs
dWRlICJTVkdQcm9wZXJ0eU93bmVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NTIsMTMgKzU0LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE9wdGlvbmFsPFN0cmluZz4gc3lu
Y2hyb25pemUoKSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICAKICAgICAvLyBDb250cm9s
IHRoZSBhbmltYXRpb24gbGlmZSBjeWNsZS4KLSAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0FuaW1hdGluZzsgfQotICAgIHZpcnR1YWwgdm9pZCBzdGFydEFuaW1hdGlv
bigpIHsgbV9pc0FuaW1hdGluZyA9IHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1h
dGlvbigpIHsgbV9pc0FuaW1hdGluZyA9IGZhbHNlOyB9CisgICAgYm9vbCBpc0FuaW1hdGluZygp
IGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0b3JzLmNvbXB1dGVTaXplKCk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSB7IG1f
YW5pbWF0b3JzLmFkZChhbmltYXRvcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1hdGlv
bihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIHsgbV9hbmltYXRvcnMucmVtb3ZlKGFu
aW1hdG9yKTsgfQogICAgIAogICAgIC8vIEF0dGFjaC9EZXRhY2ggdGhlIGFuaW1WYWwgb2YgdGhl
IHRyYWdldCBlbGVtZW50J3MgcHJvcGVydHkgYnkgdGhlIGluc3RhbmNlIGVsZW1lbnQncyBwcm9w
ZXJ0eS4KLSAgICB2aXJ0dWFsIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdBbmltYXRl
ZFByb3BlcnR5JikgeyBtX2lzQW5pbWF0aW5nID0gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBp
bnN0YW5jZVN0b3BBbmltYXRpb24oKSB7IG1faXNBbmltYXRpbmcgPSBmYWxzZTsgfQorICAgIHZp
cnR1YWwgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBh
bmltYXRvciwgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpIHsgc3RhcnRBbmltYXRpb24oYW5pbWF0b3Ip
OyB9CisgICAgdmlydHVhbCB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbihTVkdBdHRyaWJ1dGVB
bmltYXRvciYgYW5pbWF0b3IpIHsgc3RvcEFuaW1hdGlvbihhbmltYXRvcik7IH0KICAgICAKIHBy
b3RlY3RlZDoKICAgICBTVkdBbmltYXRlZFByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KQpAQCAtNzAsNyArNzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb21taXRQcm9wZXJ0
eUNoYW5nZShTVkdQcm9wZXJ0eSopIG92ZXJyaWRlOwogICAgIAogICAgIFNWR0VsZW1lbnQqIG1f
Y29udGV4dEVsZW1lbnQgeyBudWxscHRyIH07Ci0gICAgYm9vbCBtX2lzQW5pbWF0aW5nIHsgZmFs
c2UgfTsKKyAgICBXZWFrSGFzaFNldDxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gbV9hbmltYXRvcnM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3Iu
aAkocmV2aXNpb24gMjYxODgxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDkgKzY4LDkg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydChTVkdFbGVtZW50Kikgb3ZlcnJpZGUKICAgICB7
Ci0gICAgICAgIG1fYW5pbWF0ZWQtPnN0YXJ0QW5pbWF0aW9uKCk7CisgICAgICAgIG1fYW5pbWF0
ZWQtPnN0YXJ0QW5pbWF0aW9uKCp0aGlzKTsKICAgICAgICAgZm9yIChhdXRvJiBpbnN0YW5jZSA6
IG1fYW5pbWF0ZWRJbnN0YW5jZXMpCi0gICAgICAgICAgICBpbnN0YW5jZS0+aW5zdGFuY2VTdGFy
dEFuaW1hdGlvbihtX2FuaW1hdGVkKTsKKyAgICAgICAgICAgIGluc3RhbmNlLT5pbnN0YW5jZVN0
YXJ0QW5pbWF0aW9uKCp0aGlzLCBtX2FuaW1hdGVkKTsKICAgICB9CiAKICAgICB2b2lkIGFwcGx5
KFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQpIG92ZXJyaWRlCkBAIC04OSw5ICs4OSw5IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzQW5pbWF0ZWRTdHlsZVByb3BlcnR5QW5pYW10b3IodGFyZ2V0
RWxlbWVudCkpCiAgICAgICAgICAgICByZW1vdmVBbmltYXRlZFN0eWxlUHJvcGVydHkodGFyZ2V0
RWxlbWVudCk7CiAKLSAgICAgICAgbV9hbmltYXRlZC0+c3RvcEFuaW1hdGlvbigpOworICAgICAg
ICBtX2FuaW1hdGVkLT5zdG9wQW5pbWF0aW9uKCp0aGlzKTsKICAgICAgICAgZm9yIChhdXRvJiBp
bnN0YW5jZSA6IG1fYW5pbWF0ZWRJbnN0YW5jZXMpCi0gICAgICAgICAgICBpbnN0YW5jZS0+aW5z
dGFuY2VTdG9wQW5pbWF0aW9uKCk7CisgICAgICAgICAgICBpbnN0YW5jZS0+aW5zdGFuY2VTdG9w
QW5pbWF0aW9uKCp0aGlzKTsKICAgICB9CiAKICAgICBPcHRpb25hbDxmbG9hdD4gY2FsY3VsYXRl
RGlzdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgU3RyaW5nJiBmcm9tLCBj
b25zdCBTdHJpbmcmIHRvKSBjb25zdCBvdmVycmlkZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oCShyZXZp
c2lvbiAyNjE4ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCwzMyArODAsMzQgQEAgcHVibGlj
OgogICAgIH0KIAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBhbmltYXRpb24uCi0gICAgdm9pZCBz
dGFydEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBzdGFydEFuaW1hdGlvbihTVkdBdHRy
aWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBpZiAobV9h
bmltVmFsKQotICAgICAgICAgICAgKm1fYW5pbVZhbCA9IG1fYmFzZVZhbDsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgZW5zdXJlQW5pbVZhbCgpOwotICAgICAgICBTVkdBbmltYXRlZFByb3Bl
cnR5OjpzdGFydEFuaW1hdGlvbigpOworICAgICAgICAqZW5zdXJlQW5pbVZhbCgpID0gbV9iYXNl
VmFsOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdGFydEFuaW1hdGlvbihhbmltYXRv
cik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lk
IHN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVycmlkZQog
ICAgIHsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbihhbmltYXRv
cik7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAgICAqbV9hbmltVmFsID0gbV9i
YXNlVmFsOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdG9wQW5pbWF0aW9uKCk7CiAg
ICAgfQogCiAgICAgLy8gQ29udHJvbGxpbmcgdGhlIGluc3RhbmNlIGFuaW1hdGlvbi4KLSAgICB2
b2lkIGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWQp
IG92ZXJyaWRlCisgICAgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFu
aW1hdG9yJiBhbmltYXRvciwgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWQpIG92ZXJyaWRl
CiAgICAgeworICAgICAgICBpZiAoaXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgbV9hbmltVmFsID0gc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
PihhbmltYXRlZCkuYW5pbVZhbCgpOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0
YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1hdGVkKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0
eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbihhbmltYXRvciwgYW5pbWF0ZWQpOwogICAgIH0KIAot
ICAgIHZvaWQgaW5zdGFuY2VTdG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIGluc3Rh
bmNlU3RvcEFuaW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRl
CiAgICAgeworICAgICAgICBpZiAoIWlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIG1fYW5pbVZhbCA9IG51bGxwdHI7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVy
dHk6Omluc3RhbmNlU3RvcEFuaW1hdGlvbigpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5
OjppbnN0YW5jZVN0b3BBbmltYXRpb24oYW5pbWF0b3IpOwogICAgIH0KIAogICAgIC8vIFZpc3Vh
bCBTdHVkaW8gZG9lc24ndCBzZWVtIHRvIHNlZSB0aGVzZSBwcml2YXRlIGNvbnN0cnVjdG9ycyBm
cm9tIHN1YmNsYXNzZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaAkocmV2aXNpb24gMjYxODgxKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDMzICs5NiwzNCBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgLy8gQ29udHJvbGxpbmcgdGhlIGFuaW1hdGlvbi4KLSAgICB2b2lkIHN0YXJ0QW5pbWF0aW9u
KCkgb3ZlcnJpZGUKKyAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9y
JiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChtX2FuaW1WYWwpCi0gICAg
ICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGVuc3VyZUFuaW1WYWwoKTsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTo6c3RhcnRBbmltYXRpb24oKTsKKyAgICAgICAgZW5zdXJlQW5pbVZhbCgpLT5zZXRW
YWx1ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5Ojpz
dGFydEFuaW1hdGlvbihhbmltYXRvcik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9wQW5pbWF0aW9u
KCkgb3ZlcnJpZGUKKyAgICB2b2lkIHN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3Im
IGFuaW1hdG9yKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
c3RvcEFuaW1hdGlvbihhbmltYXRvcik7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAg
ICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7Ci0gICAgICAgIFNW
R0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKICAgICB9CiAKICAgICAvLyBDb250
cm9sbGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgotICAgIHZvaWQgaW5zdGFuY2VTdGFydEFu
aW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKKyAgICB2b2lk
IGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yLCBT
VkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlm
IChpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2FuaW1WYWwg
PSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkmPihhbmltYXRlZCkuYW5pbVZh
bCgpOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0QW5pbWF0aW9u
KGFuaW1hdGVkKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFu
aW1hdGlvbihhbmltYXRvciwgYW5pbWF0ZWQpOwogICAgIH0KIAotICAgIHZvaWQgaW5zdGFuY2VT
dG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIGluc3RhbmNlU3RvcEFuaW1hdGlvbihT
VkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgeworICAgICAgICBp
ZiAoIWlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fYW5pbVZh
bCA9IG51bGxwdHI7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RvcEFu
aW1hdGlvbigpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0b3BBbmlt
YXRpb24oYW5pbWF0b3IpOwogICAgIH0KIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5oCShyZXZp
c2lvbiAyNjE4ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1
dGVBbmltYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
UXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNTEsNyArNTIsNyBAQCBlbnVtIGNsYXNzIENhbGNNb2RlIDogdWlu
dDhfdCB7CiAgICAgU3BsaW5lCiB9OwogCi1jbGFzcyBTVkdBdHRyaWJ1dGVBbmltYXRvciA6IHB1
YmxpYyBSZWZDb3VudGVkPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiB7CitjbGFzcyBTVkdBdHRyaWJ1
dGVBbmltYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgU1ZHQXR0cmlidXRlQW5pbWF0b3IoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MTg4MSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDIwLTA1LTE5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+
CisKKyAgICAgICAgQW4gU1ZHIGFuaW1hdGVkIHByb3BlcnR5IGFuaW1hdG9yIGNhbiBzdG9wIGFu
aW1hdGlvbiB3aGlsZSBvdGhlciBhbmltYXRvcnMgYXJlIHN0aWxsIHJ1bm5pbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQxNworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkyNzgzMDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUt
YW5pbWF0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMv
YW5pbWF0ZWQtZW51bS1tdXRpcGxlLWFuaW1hdG9ycy5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFuaW1hdG9ycy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRp
cGxlLWFuaW1hdG9ycy5zdmc6IEFkZGVkLgorCiAyMDIwLTA1LTE5ICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBXZWJLaXRUZXN0UnVu
bmVyIHRvIHJlc2V0IElUUCB0byB0aGUgbWVtb3J5IHN0b3JlIGJldHdlZW4gYWxsIHRlc3RzLgpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtZW51bS1tdXRpcGxlLWFu
aW1hdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtZW51bS1tdXRpcGxlLWFuaW1hdG9ycy1leHBlY3RlZC50eHQJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtZW51bS1tdXRp
cGxlLWFuaW1hdG9ycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAor
UGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtZW51bS1tdXRpcGxlLWFuaW1hdG9ycy5zdmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtZW51bS1tdXRpcGxlLWFuaW1hdG9y
cy5zdmcJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtZW51bS1tdXRpcGxlLWFuaW1hdG9ycy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MiBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxjbGlw
UGF0aD4KKyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY2xpcFBhdGhVbml0cyIvPgor
ICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9ImNsaXBQYXRoVW5pdHMiIG1heD0iNTBtcyIgb25l
bmQ9Im9uRW5kKCkiLz4KKyAgICAgICAgPHNldCBhdHRyaWJ1dGVOYW1lPSJjbGlwUGF0aFVuaXRz
Ii8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8dGV4dCB4PSIxMCIgeT0iMjAiPlBhc3NlcyBpZiBp
dCBkb2VzIG5vdCBjcmFzaC48L3RleHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgIGZ1bmN0aW9uIG9uRW5kKCkgeworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFuaW1hdG9ycy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0aXBsZS1hbmlt
YXRvcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKK1Bhc3NlcyBp
ZiBpdCBkb2VzIG5vdCBjcmFzaC4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFuaW1hdG9ycy5zdmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3JzLnN2
Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1s
ZW5ndGgtbXV0aXBsZS1hbmltYXRvcnMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIg
QEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdD4K
KyAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieCIvPgorICAgICAgICA8c2V0IGF0dHJp
YnV0ZU5hbWU9IngiIG1heD0iNTBtcyIgb25lbmQ9Im9uRW5kKCkiLz4KKyAgICAgICAgPHNldCBh
dHRyaWJ1dGVOYW1lPSJ4Ii8+CisgICAgPC9yZWN0PgorICAgIDx0ZXh0IHg9IjEwIiB5PSIyMCI+
UGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLjwvdGV4dD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IH0KKworICAgICAgICAgZnVuY3Rpb24gb25FbmQoKSB7CisgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400293</attachid>
            <date>2020-05-26 19:04:32 -0700</date>
            <delta_ts>2020-05-26 21:01:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207417-20200526190432.patch</filename>
            <type>text/plain</type>
            <size>17365</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MjE2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA1LTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIGFu
aW1hdGVkIHByb3BlcnR5IGFuaW1hdG9yIGNhbiBzdG9wIGFuaW1hdGlvbiB3aGlsZSBvdGhlciBh
bmltYXRvcnMgYXJlIHN0aWxsIHJ1bm5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkyNzgz
MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFuIFNW
RyBhbmltYXRlZCBwcm9wZXJ0eSBjYW4gYmUgYW5pbWF0ZWQgYnkgbXVsdGlwbGUgYW5pbWF0b3Jz
LiBXaGVuIG9uZQorICAgICAgICBhbmltYXRvciBzdG9wcyB0aGUgYW5pbWF0aW9uLCB0aGUgYW5p
bVZhbCBzaG91bGQgbm90IGJlIGRlbGV0ZWQgc2luY2UgaXQKKyAgICAgICAgd2lsbCBiZSB1c2Vk
IGJ5IG90aGVyIGFuaW1hdG9ycy4KKworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5IHdpbGwg
bWFpbnRhaW4gYSBXZWFrSGFzaFNldDxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gaW4KKyAgICAgICAg
d2hpY2ggdGhlIGFuaW1hdG9yIHdpbGwgYmUgYWRkZWQgd2hlbiB0aGUgYW5pbWF0aW9uIHN0YXJ0
cyBhbmQgd2lsbCBiZSAKKyAgICAgICAgcmVtb3ZlZCB3aGVuIHRoZSB0aGUgYW5pbWF0aW9uIHN0
b3BzLiBXaGVuIGFsbCB0aGUgYW5pbWF0b3JzIHN0b3BzIHRoZWlyCisgICAgICAgIGFuaW1hdGlv
bnMsIHRoZSBhbmltYXRlZCBwcm9wZXJ0eSBtYXkgZGVsZXRlIHRoZSBhbmltVmFsIG9yIGtlZXAg
aXQgaWYgaXQKKyAgICAgICAgY2FuIGJlIHJlZmVyZW5jZWQgYnkgSmF2YVNjcmlwdC4KKworICAg
ICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtZW51bS1tdXRpcGxlLWFuaW1hdG9y
cy5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRp
cGxlLWFuaW1hdG9ycy5zdmcKKworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
RGVjb3JhdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByaW1pdGl2ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aXNB
bmltYXRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
c3RvcEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpp
bnN0YW5jZVN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJv
cGVydHk6Omluc3RhbmNlU3RvcEFuaW1hdGlvbik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBdHRy
aWJ1dGVBbmltYXRvci5oOgorCiAyMDIwLTA1LTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBFbGltaW5hdGUgQ29sb3IgY29uc3RydWN0b3JzIHRoYXQgdGFrZSBz
dHJpbmdzLCBtb3ZpbmcgY29sb3IgcGFyc2luZyBlbnRpcmVseSBpbnRvIHRoZSBDU1MgcGFyc2Vy
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29yYXRl
ZFByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNjIxNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29yYXRlZFByb3BlcnR5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExNiwzMiArMTE2LDM4IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICAvLyBDb250cm9sbGluZyB0aGUgYW5pbWF0aW9uLgotICAgIHZvaWQgc3RhcnRBbmltYXRpb24o
KSBvdmVycmlkZQorICAgIHZvaWQgc3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3Im
IGFuaW1hdG9yKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgaWYgKGlzQW5pbWF0aW5nKCkpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fYW5pbVZhbCA9IG1fYmFzZVZhbC0+Y2xvbmUo
KTsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RhcnRBbmltYXRpb24oKTsKKyAgICAg
ICAgaWYgKG1fYW5pbVZhbCkKKyAgICAgICAgICAgIG1fYW5pbVZhbC0+c2V0VmFsdWUobV9iYXNl
VmFsLT52YWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9hbmltVmFsID0gbV9i
YXNlVmFsLT5jbG9uZSgpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdGFydEFuaW1h
dGlvbihhbmltYXRvcik7CiAgICAgfQotICAgIHZvaWQgc3RvcEFuaW1hdGlvbigpIG92ZXJyaWRl
CisgICAgdm9pZCBzdG9wQW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikg
b3ZlcnJpZGUKICAgICB7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRp
b24oYW5pbWF0b3IpOwogICAgICAgICBpZiAoIWlzQW5pbWF0aW5nKCkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIG1fYW5pbVZhbCA9IG51bGxwdHI7Ci0gICAgICAgIFNWR0FuaW1hdGVk
UHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IG51bGxw
dHI7CisgICAgICAgIGVsc2UgaWYgKG1fYW5pbVZhbCkKKyAgICAgICAgICAgIG1fYW5pbVZhbC0+
c2V0VmFsdWUobV9iYXNlVmFsLT52YWx1ZSgpKTsKICAgICB9CiAKICAgICAvLyBDb250cm9sbGlu
ZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgotICAgIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlv
bihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKKyAgICB2b2lkIGluc3Rh
bmNlU3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yLCBTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmIChpc0Fu
aW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2FuaW1WYWwgPSBzdGF0
aWNfY2FzdDxkZWNsdHlwZSgqdGhpcyk+KGFuaW1hdGVkKS5tX2FuaW1WYWw7Ci0gICAgICAgIFNW
R0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RhcnRBbmltYXRpb24oYW5pbWF0ZWQpOworICAg
ICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1hdG9y
LCBhbmltYXRlZCk7CiAgICAgfQogCi0gICAgdm9pZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oKSBv
dmVycmlkZQorICAgIHZvaWQgaW5zdGFuY2VTdG9wQW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1h
dG9yJiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmICghaXNBbmltYXRpbmco
KSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9hbmltVmFsID0gbnVsbHB0cjsKLSAg
ICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdG9wQW5pbWF0aW9uKCk7CisgICAg
ICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RvcEFuaW1hdGlvbihhbmltYXRvcik7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCShyZXZp
c2lvbiAyNjIxNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByaW1pdGl2ZVByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDM3ICs5OSwzOSBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgLy8gQ29udHJvbGxpbmcgdGhlIGFuaW1hdGlvbi4KLSAgICB2
b2lkIHN0YXJ0QW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKFNW
R0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlm
IChtX2FuaW1WYWwpCiAgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+
dmFsdWUoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGVuc3VyZUFuaW1WYWwoKTsKLSAg
ICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RhcnRBbmltYXRpb24oKTsKKyAgICAgICAgU1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6c3RhcnRBbmltYXRpb24oYW5pbWF0b3IpOwogICAgIH0KIAotICAg
IHZvaWQgc3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBzdG9wQW5pbWF0aW9uKFNW
R0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlm
IChtX2FuaW1WYWwpCisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24o
YW5pbWF0b3IpOworICAgICAgICBpZiAoIWlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICBtX2Fu
aW1WYWwgPSBudWxscHRyOworICAgICAgICBlbHNlIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAg
ICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7Ci0gICAgICAgIFNWR0Fu
aW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKICAgICB9CiAKICAgICAvLyBDb250cm9s
bGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgotICAgIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1h
dGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKKyAgICB2b2lkIGlu
c3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yLCBTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChp
c0FuaW1hdGluZygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2FuaW1WYWwgPSBz
dGF0aWNfY2FzdDxTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5Jj4oYW5pbWF0ZWQpLm1fYW5p
bVZhbDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlv
bihhbmltYXRlZCk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3RhbmNlU3RhcnRB
bmltYXRpb24oYW5pbWF0b3IsIGFuaW1hdGVkKTsKICAgICB9CiAKLSAgICB2b2lkIGluc3RhbmNl
U3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgdm9pZCBpbnN0YW5jZVN0b3BBbmltYXRpb24o
U1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVycmlkZQogICAgIHsKICAgICAgICAg
aWYgKCFpc0FuaW1hdGluZygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2FuaW1W
YWwgPSBudWxscHRyOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0b3BB
bmltYXRpb24oKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdG9wQW5p
bWF0aW9uKGFuaW1hdG9yKTsKICAgICB9CiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgJKHJldmlz
aW9uIDI2MjE2NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOSArMjUsMTEgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJTVkdBdHRyaWJ1dGVBbmltYXRvci5oIgogI2luY2x1ZGUgIlNWR1By
b3BlcnR5T3duZXIuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MiwxMyArNTQs
MTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgp
IHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQogICAgIAogICAgIC8vIENvbnRyb2wgdGhlIGFuaW1h
dGlvbiBsaWZlIGN5Y2xlLgotICAgIGJvb2wgaXNBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBt
X2lzQW5pbWF0aW5nOyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKCkgeyBtX2lz
QW5pbWF0aW5nID0gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbWF0aW9uKCkgeyBt
X2lzQW5pbWF0aW5nID0gZmFsc2U7IH0KKyAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbmltYXRvcnMuY29tcHV0ZVNpemUoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdGFy
dEFuaW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIHsgbV9hbmltYXRvcnMu
YWRkKGFuaW1hdG9yKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbWF0aW9uKFNWR0F0dHJp
YnV0ZUFuaW1hdG9yJiBhbmltYXRvcikgeyBtX2FuaW1hdG9ycy5yZW1vdmUoYW5pbWF0b3IpOyB9
CiAgICAgCiAgICAgLy8gQXR0YWNoL0RldGFjaCB0aGUgYW5pbVZhbCBvZiB0aGUgdHJhZ2V0IGVs
ZW1lbnQncyBwcm9wZXJ0eSBieSB0aGUgaW5zdGFuY2UgZWxlbWVudCdzIHByb3BlcnR5LgotICAg
IHZpcnR1YWwgdm9pZCBpbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKFNWR0FuaW1hdGVkUHJvcGVydHkm
KSB7IG1faXNBbmltYXRpbmcgPSB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGluc3RhbmNlU3Rv
cEFuaW1hdGlvbigpIHsgbV9pc0FuaW1hdGluZyA9IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lk
IGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yLCBT
VkdBbmltYXRlZFByb3BlcnR5JikgeyBzdGFydEFuaW1hdGlvbihhbmltYXRvcik7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgaW5zdGFuY2VTdG9wQW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBh
bmltYXRvcikgeyBzdG9wQW5pbWF0aW9uKGFuaW1hdG9yKTsgfQogICAgIAogcHJvdGVjdGVkOgog
ICAgIFNWR0FuaW1hdGVkUHJvcGVydHkoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCkBAIC03
MCw3ICs3Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNW
R1Byb3BlcnR5Kikgb3ZlcnJpZGU7CiAgICAgCiAgICAgU1ZHRWxlbWVudCogbV9jb250ZXh0RWxl
bWVudCB7IG51bGxwdHIgfTsKLSAgICBib29sIG1faXNBbmltYXRpbmcgeyBmYWxzZSB9OworICAg
IFdlYWtIYXNoU2V0PFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBtX2FuaW1hdG9yczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvci5oCShyZXZpc2lv
biAyNjIxNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5QW5pbWF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsOSArNjgsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHN0YXJ0KFNWR0VsZW1lbnQqKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAg
bV9hbmltYXRlZC0+c3RhcnRBbmltYXRpb24oKTsKKyAgICAgICAgbV9hbmltYXRlZC0+c3RhcnRB
bmltYXRpb24oKnRoaXMpOwogICAgICAgICBmb3IgKGF1dG8mIGluc3RhbmNlIDogbV9hbmltYXRl
ZEluc3RhbmNlcykKLSAgICAgICAgICAgIGluc3RhbmNlLT5pbnN0YW5jZVN0YXJ0QW5pbWF0aW9u
KG1fYW5pbWF0ZWQpOworICAgICAgICAgICAgaW5zdGFuY2UtPmluc3RhbmNlU3RhcnRBbmltYXRp
b24oKnRoaXMsIG1fYW5pbWF0ZWQpOwogICAgIH0KIAogICAgIHZvaWQgYXBwbHkoU1ZHRWxlbWVu
dCogdGFyZ2V0RWxlbWVudCkgb3ZlcnJpZGUKQEAgLTg5LDkgKzg5LDkgQEAgcHVibGljOgogICAg
ICAgICBpZiAoaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBbmlhbXRvcih0YXJnZXRFbGVtZW50KSkK
ICAgICAgICAgICAgIHJlbW92ZUFuaW1hdGVkU3R5bGVQcm9wZXJ0eSh0YXJnZXRFbGVtZW50KTsK
IAotICAgICAgICBtX2FuaW1hdGVkLT5zdG9wQW5pbWF0aW9uKCk7CisgICAgICAgIG1fYW5pbWF0
ZWQtPnN0b3BBbmltYXRpb24oKnRoaXMpOwogICAgICAgICBmb3IgKGF1dG8mIGluc3RhbmNlIDog
bV9hbmltYXRlZEluc3RhbmNlcykKLSAgICAgICAgICAgIGluc3RhbmNlLT5pbnN0YW5jZVN0b3BB
bmltYXRpb24oKTsKKyAgICAgICAgICAgIGluc3RhbmNlLT5pbnN0YW5jZVN0b3BBbmltYXRpb24o
KnRoaXMpOwogICAgIH0KIAogICAgIE9wdGlvbmFsPGZsb2F0PiBjYWxjdWxhdGVEaXN0YW5jZShT
VkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBTdHJpbmcmIGZyb20sIGNvbnN0IFN0cmlu
ZyYgdG8pIGNvbnN0IG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0LmgJKHJldmlzaW9uIDI2MjE2
NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlM
aXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTgwLDMzICs4MCwzNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgLy8gQ29udHJvbGxpbmcgdGhlIGFuaW1hdGlvbi4KLSAgICB2b2lkIHN0YXJ0QW5pbWF0
aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1h
dG9yJiBhbmltYXRvcikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAg
ICAgICAgICAgICAqbV9hbmltVmFsID0gbV9iYXNlVmFsOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBlbnN1cmVBbmltVmFsKCk7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0
QW5pbWF0aW9uKCk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9u
KGFuaW1hdG9yKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3BBbmltYXRpb24oKSBvdmVycmlkZQor
ICAgIHZvaWQgc3RvcEFuaW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92
ZXJyaWRlCiAgICAgeworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdG9wQW5pbWF0aW9u
KGFuaW1hdG9yKTsKICAgICAgICAgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAgICptX2FuaW1W
YWwgPSBtX2Jhc2VWYWw7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRp
b24oKTsKICAgICB9CiAKICAgICAvLyBDb250cm9sbGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9u
LgotICAgIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBh
bmltYXRlZCkgb3ZlcnJpZGUKKyAgICB2b2lkIGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQXR0
cmlidXRlQW5pbWF0b3ImIGFuaW1hdG9yLCBTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkg
b3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmIChpc0FuaW1hdGluZygpKQorICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBtX2FuaW1WYWwgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZFByb3Bl
cnR5TGlzdCY+KGFuaW1hdGVkKS5hbmltVmFsKCk7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVy
dHk6Omluc3RhbmNlU3RhcnRBbmltYXRpb24oYW5pbWF0ZWQpOworICAgICAgICBTVkdBbmltYXRl
ZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1hdG9yLCBhbmltYXRlZCk7CiAg
ICAgfQogCi0gICAgdm9pZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHZv
aWQgaW5zdGFuY2VTdG9wQW5pbWF0aW9uKFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikg
b3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmICghaXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgbV9hbmltVmFsID0gbnVsbHB0cjsKLSAgICAgICAgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdG9wQW5pbWF0aW9uKCk7CisgICAgICAgIFNWR0FuaW1hdGVk
UHJvcGVydHk6Omluc3RhbmNlU3RvcEFuaW1hdGlvbihhbmltYXRvcik7CiAgICAgfQogCiAgICAg
Ly8gVmlzdWFsIFN0dWRpbyBkb2Vzbid0IHNlZW0gdG8gc2VlIHRoZXNlIHByaXZhdGUgY29uc3Ry
dWN0b3JzIGZyb20gc3ViY2xhc3Nlcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oCShyZXZpc2lvbiAy
NjIxNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVl
UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTYsMzMgKzk2LDM3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICAvLyBDb250cm9sbGluZyB0aGUgYW5pbWF0aW9uLgotICAgIHZvaWQgc3RhcnRB
bmltYXRpb24oKSBvdmVycmlkZQorICAgIHZvaWQgc3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRl
QW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fYW5pbVZh
bCkKICAgICAgICAgICAgIG1fYW5pbVZhbC0+c2V0VmFsdWUobV9iYXNlVmFsLT52YWx1ZSgpKTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgZW5zdXJlQW5pbVZhbCgpOwotICAgICAgICBTVkdB
bmltYXRlZFByb3BlcnR5OjpzdGFydEFuaW1hdGlvbigpOworICAgICAgICBTVkdBbmltYXRlZFBy
b3BlcnR5OjpzdGFydEFuaW1hdGlvbihhbmltYXRvcik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9w
QW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIHN0b3BBbmltYXRpb24oU1ZHQXR0cmlidXRl
QW5pbWF0b3ImIGFuaW1hdG9yKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTo6c3RvcEFuaW1hdGlvbihhbmltYXRvcik7CiAgICAgICAgIGlmIChtX2FuaW1WYWwp
CiAgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7Ci0g
ICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKICAgICB9CiAKICAg
ICAvLyBDb250cm9sbGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgotICAgIHZvaWQgaW5zdGFu
Y2VTdGFydEFuaW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUK
KyAgICB2b2lkIGluc3RhbmNlU3RhcnRBbmltYXRpb24oU1ZHQXR0cmlidXRlQW5pbWF0b3ImIGFu
aW1hdG9yLCBTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKICAgICB7Cisg
ICAgICAgIGlmIChpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBt
X2FuaW1WYWwgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkmPihhbmltYXRl
ZCkuYW5pbVZhbCgpOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0YXJ0
QW5pbWF0aW9uKGFuaW1hdGVkKTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFu
Y2VTdGFydEFuaW1hdGlvbihhbmltYXRvciwgYW5pbWF0ZWQpOwogICAgIH0KIAotICAgIHZvaWQg
aW5zdGFuY2VTdG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUKKyAgICB2b2lkIGluc3RhbmNlU3RvcEFu
aW1hdGlvbihTVkdBdHRyaWJ1dGVBbmltYXRvciYgYW5pbWF0b3IpIG92ZXJyaWRlCiAgICAgewor
ICAgICAgICBpZiAoIWlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IG1fYW5pbVZhbCA9IG51bGxwdHI7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6Omluc3Rh
bmNlU3RvcEFuaW1hdGlvbigpOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5j
ZVN0b3BBbmltYXRpb24oYW5pbWF0b3IpOwogICAgIH0KIAogcHJvdGVjdGVkOgpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRv
ci5oCShyZXZpc2lvbiAyNjIxNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBdHRyaWJ1dGVBbmltYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsNyArNTIsNyBAQCBlbnVtIGNsYXNzIENhbGNN
b2RlIDogdWludDhfdCB7CiAgICAgU3BsaW5lCiB9OwogCi1jbGFzcyBTVkdBdHRyaWJ1dGVBbmlt
YXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiB7CitjbGFzcyBT
VkdBdHRyaWJ1dGVBbmltYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR0F0dHJpYnV0ZUFuaW1h
dG9yPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgU1ZHQXR0cmlidXRlQW5pbWF0
b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI2MjE2NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTA1LTI2ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIGFuaW1hdGVkIHByb3BlcnR5IGFuaW1hdG9yIGNh
biBzdG9wIGFuaW1hdGlvbiB3aGlsZSBvdGhlciBhbmltYXRvcnMgYXJlIHN0aWxsIHJ1bm5pbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQxNwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkyNzgzMDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtZW51bS1t
dXRpcGxlLWFuaW1hdG9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL2FuaW1hdGVkLWVudW0tbXV0aXBsZS1hbmltYXRvcnMuc3ZnOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0aXBsZS1hbmltYXRvcnMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5n
dGgtbXV0aXBsZS1hbmltYXRvcnMuc3ZnOiBBZGRlZC4KKwogMjAyMC0wNS0yNiAgSmFzb24gTGF3
cmVuY2UgIDxsYXdyZW5jZS5qQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKD8pOiBb
IGlPUyB3azIgXSBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY29va2llLWRlbGV0
aW9uLmh0bWwgaXMgZmxha3kgZmFpbGluZyBhbmQgY3Jhc2hpbmcuCkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1l
bnVtLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxIEBACitQYXNzZXMgaWYgaXQgZG9l
cyBub3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1l
bnVtLW11dGlwbGUtYW5pbWF0b3JzLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUtYW5pbWF0b3JzLnN2Zwkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1lbnVtLW11dGlwbGUt
YW5pbWF0b3JzLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8c3ZnIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPGNsaXBQYXRoPgorICAgICAgICA8
YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJjbGlwUGF0aFVuaXRzIi8+CisgICAgICAgIDxzZXQgYXR0
cmlidXRlTmFtZT0iY2xpcFBhdGhVbml0cyIgbWF4PSI1MG1zIiBvbmVuZD0ib25FbmQoKSIvPgor
ICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9ImNsaXBQYXRoVW5pdHMiLz4KKyAgICA8L2NsaXBQ
YXRoPgorICAgIDx0ZXh0IHg9IjEwIiB5PSIyMCI+UGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNo
LjwvdGV4dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICAgZnVuY3Rpb24gb25F
bmQoKSB7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZWQtbGVuZ3RoLW11dGlwbGUtYW5pbWF0b3JzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0aXBs
ZS1hbmltYXRvcnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFuaW1hdG9ycy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAorUGFzc2VzIGlmIGl0IGRvZXMgbm90IGNy
YXNoLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtbGVuZ3RoLW11
dGlwbGUtYW5pbWF0b3JzLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9hbmltYXRlZC1sZW5ndGgtbXV0aXBsZS1hbmltYXRvcnMuc3ZnCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWxlbmd0aC1tdXRpcGxlLWFu
aW1hdG9ycy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxyZWN0PgorICAgICAgICA8YW5pbWF0
ZSBhdHRyaWJ1dGVOYW1lPSJ4Ii8+CisgICAgICAgIDxzZXQgYXR0cmlidXRlTmFtZT0ieCIgbWF4
PSI1MG1zIiBvbmVuZD0ib25FbmQoKSIvPgorICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9Ingi
Lz4KKyAgICA8L3JlY3Q+CisgICAgPHRleHQgeD0iMTAiIHk9IjIwIj5QYXNzZXMgaWYgaXQgZG9l
cyBub3QgY3Jhc2guPC90ZXh0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgICBm
dW5jdGlvbiBvbkVuZCgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9zdmc+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>