<?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>183619</bug_id>
          
          <creation_ts>2018-03-13 17:04:14 -0700</creation_ts>
          <short_desc>MessagePort is not always destroyed on the right thread</short_desc>
          <delta_ts>2018-03-15 11:21:18 -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>Service Workers</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>183602</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1406297</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-13 17:04:14 -0700</bug_when>
    <thetext>Since we ref MessagePort from a worker thread, and pass this ref to the main thread, a MessagePort might sometimes be destroyed on the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406298</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-13 17:04:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/38204711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406302</commentid>
    <comment_count>2</comment_count>
      <attachid>335748</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-13 17:06:18 -0700</bug_when>
    <thetext>Created attachment 335748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406556</commentid>
    <comment_count>3</comment_count>
      <attachid>335812</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-14 17:10:08 -0700</bug_when>
    <thetext>Created attachment 335812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406557</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-14 17:10:51 -0700</bug_when>
    <thetext>I wonder whether we should not add this same thread for construction and destruction to all ActiveDOMObjects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406568</commentid>
    <comment_count>5</comment_count>
      <attachid>335816</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-14 17:46:16 -0700</bug_when>
    <thetext>Created attachment 335816
Version without postTaskTo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406600</commentid>
    <comment_count>6</comment_count>
      <attachid>335829</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-14 21:19:45 -0700</bug_when>
    <thetext>Created attachment 335829
Fixing log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406683</commentid>
    <comment_count>7</comment_count>
      <attachid>335829</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-15 09:33:22 -0700</bug_when>
    <thetext>Comment on attachment 335829
Fixing log

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

&gt; Source/WebCore/dom/MessagePort.cpp:279
&gt;              innerHandler(WTFMove(messages));

Could you please ASSERT(isMainThread()); in here?

&gt; Source/WebCore/dom/MessagePort.cpp:333
&gt; +                if (weakThis)

Could you please ASSERT(isMainThread()); in here?

&gt; Source/WebCore/dom/MessagePort.h:113
&gt; +    WeakPtr&lt;MessagePort&gt; createWeakPtr() { return m_weakFactory.createWeakPtr(*this); }

My understanding is that the modern way is to not have this method and use makeWeakPtr() to constructor your WeakPtr. You already have the weakPtrFactory() getter above so it should work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406696</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-15 09:59:22 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Chris Dumez from comment #7)
&gt; Comment on attachment 335829 [details]
&gt; Fixing log
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=335829&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/MessagePort.cpp:279
&gt; &gt;              innerHandler(WTFMove(messages));
&gt; 
&gt; Could you please ASSERT(isMainThread()); in here?

It might be best to add it upfront in the callback.
Since we are refing workerThread, we really want the callback to be destroyed in the main thread whether workerThread is null or not.

&gt; &gt; Source/WebCore/dom/MessagePort.cpp:333
&gt; &gt; +                if (weakThis)
&gt; 
&gt; Could you please ASSERT(isMainThread()); in here?

Ditto.

&gt; &gt; Source/WebCore/dom/MessagePort.h:113
&gt; &gt; +    WeakPtr&lt;MessagePort&gt; createWeakPtr() { return m_weakFactory.createWeakPtr(*this); }
&gt; 
&gt; My understanding is that the modern way is to not have this method and use
&gt; makeWeakPtr() to constructor your WeakPtr. You already have the
&gt; weakPtrFactory() getter above so it should work fine.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406697</commentid>
    <comment_count>9</comment_count>
      <attachid>335856</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-15 10:03:27 -0700</bug_when>
    <thetext>Created attachment 335856
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406725</commentid>
    <comment_count>10</comment_count>
      <attachid>335856</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-15 11:21:16 -0700</bug_when>
    <thetext>Comment on attachment 335856
Patch for landing

Clearing flags on attachment: 335856

Committed r229628: &lt;https://trac.webkit.org/changeset/229628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406726</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-15 11:21:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335748</attachid>
            <date>2018-03-13 17:06:18 -0700</date>
            <delta_ts>2018-03-14 17:10:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183619-20180313170618.patch</filename>
            <type>text/plain</type>
            <size>5437</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZkYjgxYjQyZTlhMTg0
MDBkOWYwYjRiOTU0ZTdkYTY5ZWQ2MmI3Mi4uNzQwNWU3NWM4Y2U0OWI1MjA2NThiZjllMGEyYTg3
ZjBmNjVkMzM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTAzLTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZXNzYWdlUG9ydCBpcyBu
b3QgYWx3YXlzIGRlc3Ryb3llZCBvbiB0aGUgcmlnaHQgdGhyZWFkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2MTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM4MjA0NzExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdpbGwgdHJ5IHRvIGNvbWUgdXAgd2l0aCBhIHRlc3QuCisKKyAgICAgICAgKiBk
b20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6OnVwZGF0
ZUFjdGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpoYXNQZW5kaW5nQWN0
aXZpdHkgY29uc3QpOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5oOgorCiAyMDE4LTAzLTEz
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCYWQgY29uZmln
dXJhdGlvbiBwYXJhbWV0ZXJzIHNob3VsZCBtYWtlIFJUQ1BlZXJDb25uZWN0aW9uIGNvbnN0cnVj
dG9yIHRocm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAppbmRleCA0MmY0MmEyNmE5YjQ5
NDk4ZWNiZmQ4NmU0YjRhMDlkNWE4MzQ1ZTUwLi5lMjkzZmMzM2ZiN2QzMjRhYmI0MGM4YjFmYjcy
ZTM3NmI1ZmZhMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKQEAgLTI4Nyw2ICsy
ODcsMjAgQEAgdm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLnRha2VBbGxNZXNzYWdlc0ZvclBvcnQo
bV9pZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2VzVGFrZW5IYW5kbGVyKSk7CiB9CiAKK3ZvaWQg
TWVzc2FnZVBvcnQ6OnVwZGF0ZUFjdGl2aXR5KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpI
YXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkKK3sKKyAgICBib29sIGhhc0hhZExvY2FsQWN0aXZpdHkg
PSBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjazsKKyAgICBtX2hhc0hhZExvY2Fs
QWN0aXZpdHlTaW5jZUxhc3RDaGVjayA9IGZhbHNlOworCisgICAgaWYgKGhhc0FjdGl2aXR5ID09
IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6Tm8gJiYgIWhhc0hhZExv
Y2FsQWN0aXZpdHkpCisgICAgICAgIG1faXNSZW1vdGVFbGlnaWJsZUZvckdDID0gdHJ1ZTsKKwor
ICAgIGlmIChoYXNBY3Rpdml0eSA9PSBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0
aXZpdHk6OlllcykKKyAgICAgICAgbV9pc1JlbW90ZUVsaWdpYmxlRm9yR0MgPSBmYWxzZTsKKwor
ICAgIG1faXNBc2tpbmdSZW1vdGVBYm91dEdDID0gZmFsc2U7Cit9CisKIGJvb2wgTWVzc2FnZVBv
cnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgbV9taWdodEJlRWxpZ2libGVG
b3JHQyA9IHRydWU7CkBAIC0zMDUsMzEgKzMxOSwxMCBAQCBib29sIE1lc3NhZ2VQb3J0OjpoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiAgICAgLy8gSWYgd2UncmUgbm90IGluIHRoZSBtaWRk
bGUgb2YgYXNraW5nIHRoZSByZW1vdGUgcG9ydCBhYm91dCBjb2xsZWN0YWJpbGl0eSwgZG8gc28g
bm93LgogICAgIGlmICghbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MpIHsKLSAgICAgICAgTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2
aXR5KG1fcmVtb3RlSWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKV0oTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5IGhhc0FjdGl2aXR5
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGF1dG8gaW5uZXJIYW5kbGVyID0gW3RoaXMsIG90aGVy
UHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKE1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgewotICAgICAgICAgICAgICAgIGJv
b2wgaGFzSGFkTG9jYWxBY3Rpdml0eSA9IG1faGFzSGFkTG9jYWxBY3Rpdml0eVNpbmNlTGFzdENo
ZWNrOwotICAgICAgICAgICAgICAgIG1faGFzSGFkTG9jYWxBY3Rpdml0eVNpbmNlTGFzdENoZWNr
ID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICBpZiAoaGFzQWN0aXZpdHkgPT0gTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpObyAmJiAhaGFzSGFkTG9jYWxBY3Rpdml0
eSkKLSAgICAgICAgICAgICAgICAgICAgbV9pc1JlbW90ZUVsaWdpYmxlRm9yR0MgPSB0cnVlOwot
Ci0gICAgICAgICAgICAgICAgaWYgKGhhc0FjdGl2aXR5ID09IE1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyOjpIYXNBY3Rpdml0eTo6WWVzKQotICAgICAgICAgICAgICAgICAgICBtX2lzUmVtb3Rl
RWxpZ2libGVGb3JHQyA9IGZhbHNlOwotCi0gICAgICAgICAgICAgICAgbV9pc0Fza2luZ1JlbW90
ZUFib3V0R0MgPSBmYWxzZTsKLSAgICAgICAgICAgIH07Ci0KLQotICAgICAgICAgICAgaWYgKCFt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSkg
ewotICAgICAgICAgICAgICAgIGlubmVySGFuZGxlcihoYXNBY3Rpdml0eSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPnBvc3RUYXNrKFtpbm5lckhhbmRsZXIgPSBXVEZNb3ZlKGlubmVySGFuZGxl
ciksIGhhc0FjdGl2aXR5XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7Ci0gICAg
ICAgICAgICAgICAgaW5uZXJIYW5kbGVyKGhhc0FjdGl2aXR5KTsKKyAgICAgICAgTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5
KG1fcmVtb3RlSWRlbnRpZmllciwgW3dlYWtUaGlzID0gY29uc3RfY2FzdDxNZXNzYWdlUG9ydCo+
KHRoaXMpLT5jcmVhdGVXZWFrUHRyKCksIGNvbnRleHRJZGVudGlmaWVyID0gbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5jb250ZXh0SWRlbnRpZmllcigpXShNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpIG11dGFibGUgeworICAgICAgICAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhjb250ZXh0SWRlbnRpZmllciwgW3dlYWtU
aGlzLCBoYXNBY3Rpdml0eV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMt
PnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKICAgICAgICAgbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZVBvcnQuaAppbmRleCAzNTg4Zjk0OWQ4YjlmMzc3YTQxZDY2MjA5NmVlNDAxNDFhZTYyZDcy
Li43YzY2YmY3NmM2ODVmMjAyZTgxMGRkYmRjYmE4NDE1YmJmMGY4NGY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hh
bm5lbC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CiBjbGFzcyBFeGVjU3RhdGU7CkBAIC00OCw2ICs0OSw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPE1lc3NhZ2VQb3J0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgbG9jYWwsIGNvbnN0IE1lc3NhZ2VQb3J0
SWRlbnRpZmllciYgcmVtb3RlKTsKICAgICB2aXJ0dWFsIH5NZXNzYWdlUG9ydCgpOwogCisgICAg
YXV0byYgd2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3dlYWtGYWN0b3J5OyB9CisK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6
SlNWYWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwog
CiAgICAgdm9pZCBzdGFydCgpOwpAQCAtMTA2LDEwICsxMDksMTUgQEAgcHJpdmF0ZToKICAgICAv
LyBBIHBvcnQgc3RhcnRzIG91dCBpdHMgbGlmZSBlbnRhbmdsZWQsIGFuZCByZW1haW5zIGVudGFu
Z2xlZCB1bnRpbCBpdCBpcyBjbG9zZWQgb3IgaXMgY2xvbmVkLgogICAgIGJvb2wgaXNFbnRhbmds
ZWQoKSBjb25zdCB7IHJldHVybiAhbV9jbG9zZWQgJiYgbV9lbnRhbmdsZWQ7IH0KIAorICAgIFdl
YWtQdHI8TWVzc2FnZVBvcnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5
LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CisgICAgdm9pZCB1cGRhdGVBY3Rpdml0eShNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkpOworCiAgICAgYm9vbCBtX3N0YXJ0ZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9jbG9zZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRh
bmdsZWQgeyB0cnVlIH07CiAKKyAgICBXZWFrUHRyRmFjdG9yeTxNZXNzYWdlUG9ydD4gbV93ZWFr
RmFjdG9yeTsKKwogICAgIC8vIEZsYWdzIHRvIG1hbmFnZSBxdWVyeWluZyB0aGUgcmVtb3RlIHBv
cnQgZm9yIEdDIHB1cnBvc2VzCiAgICAgbXV0YWJsZSBib29sIG1fbWlnaHRCZUVsaWdpYmxlRm9y
R0MgeyBmYWxzZSB9OwogICAgIG11dGFibGUgYm9vbCBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5j
ZUxhc3RDaGVjayB7IGZhbHNlIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335812</attachid>
            <date>2018-03-14 17:10:08 -0700</date>
            <delta_ts>2018-03-14 17:46:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183619-20180314171007.patch</filename>
            <type>text/plain</type>
            <size>10711</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxZTYxMzkwNmVhZWY4
YjgzNTliNDAyNmNkYTU1OGUxYmVmNjQzMi4uZDQwYjAwM2YwZmQyOTdiN2VhZDkyMTM3ZDExNGRk
ZTI2Yjc3MTI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTAzLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZXNzYWdlUG9ydCBpcyBu
b3QgYWx3YXlzIGRlc3Ryb3llZCBvbiB0aGUgcmlnaHQgdGhyZWFkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2MTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM4MjA0NzExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhc3NlcnRpb24gdG8gZW5zdXJlIE1lc3NhZ2VQb3J0IGlzIGRlc3Ryb3ll
ZCBpbiB0aGUgcmlnaHQgdGhyZWFkLgorICAgICAgICBNb2RpZnkgbWV0aG9kcyB0YWtpbmcgYSBy
ZWYgaW4gYSBsYW1iZGEgdG8gcmVseSBvbiB3ZWFrIHBvaW50ZXJzIGFuZCBjb250ZXh0IGlkZW50
aWZpZXIuCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBv
cnQtMi5odG1sCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVzc2FnZVBvcnQ6On5NZXNzYWdlUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNz
YWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dDo6dXBkYXRlQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6Omhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Lmg6CisKIDIw
MTgtMDMtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1l
c3NhZ2VQb3J0IHNob3VsZCByZW1vdmUgaXRzIGxpc3RlbmVycyB3aGVuIGJlaW5nIGNsb3NlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggMDhmNzU3MmIxMDQxNTlmODI5MjU4ZWI1
MjIzYjY5Mzg0Y2VmNTVlMS4uOGI5NDk0MjBmYWIxZGUxNzExZjIwNzJjNGVlODg1YmQwOGMwMWE3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0xMDgsNiArMTA4LDggQEAgTWVz
c2FnZVBvcnQ6Ok1lc3NhZ2VQb3J0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIGNvbnN0IE0KIAogTWVzc2FnZVBvcnQ6On5NZXNzYWdlUG9ydCgpCiB7Cisg
ICAgQVNTRVJUKG1fY3JlYXRpb25UaHJlYWQucHRyKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsK
KwogICAgIExPRyhNZXNzYWdlUG9ydHMsICJEZXN0cm95ZWQgTWVzc2FnZVBvcnQgJXMgKCVwKSBp
biBwcm9jZXNzICUiIFBSSXU2NCwgbV9pZGVudGlmaWVyLmxvZ1N0cmluZygpLnV0ZjgoKS5kYXRh
KCksIHRoaXMsIFByb2Nlc3M6OmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKIAogICAgIEFTU0VS
VChhbGxNZXNzYWdlUG9ydHNMb2NrKCkuaXNMb2NrZWQoKSk7CkBAIC0yNDMsOCArMjQ1LDggQEAg
dm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgaWYgKCFpc0VudGFuZ2xl
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIG1lc3NhZ2VzVGFrZW5IYW5kbGVyID0g
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oVmVjdG9yPE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkNh
bGxiYWNrKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBpbm5lckhhbmRsZXIgPSBbdGhpcywgb3Ro
ZXJQcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oVmVjdG9yPE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzKSB7CisgICAgYXV0byBtZXNzYWdlc1Rha2VuSGFu
ZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlzKS0+
Y3JlYXRlV2Vha1B0cigpLCBjb250ZXh0SWRlbnRpZmllciA9IG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+Y29udGV4dElkZW50aWZpZXIoKV0oVmVjdG9yPE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
PiYmIG1lc3NhZ2VzLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkNhbGxiYWNrKSBtdXRh
YmxlIHsKKyAgICAgICAgYXV0byBpbm5lckhhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXNdKFZlY3Rv
cjxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiBtZXNzYWdlcykgewogICAgICAgICAgICAgTE9H
KE1lc3NhZ2VQb3J0cywgIk1lc3NhZ2VQb3J0ICVzICglcCkgZGlzcGF0Y2hpbmcgJXp1IG1lc3Nh
Z2VzIiwgbV9pZGVudGlmaWVyLmxvZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIG1lc3Nh
Z2VzLnNpemUoKSk7CiAKICAgICAgICAgICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KQpAQCAtMjY1LDE2ICsyNjcsNyBAQCB2b2lkIE1lc3NhZ2VQb3J0OjpkaXNwYXRjaE1lc3NhZ2Vz
KCkKICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIAotICAgICAgICBpZiAoIW1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSkgewotICAgICAgICAgICAgaW5u
ZXJIYW5kbGVyKFdURk1vdmUobWVzc2FnZXMpKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25DYWxs
YmFjaygpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhbaW5uZXJIYW5kbGVyID0gV1RGTW92ZShpbm5l
ckhhbmRsZXIpLCBtZXNzYWdlcyA9IFdURk1vdmUobWVzc2FnZXMpLCBjb21wbGV0aW9uQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGNvbXBsZXRpb25DYWxsYmFjayldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KSBtdXRhYmxlIHsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhj
b250ZXh0SWRlbnRpZmllciwgW2lubmVySGFuZGxlciA9IFdURk1vdmUoaW5uZXJIYW5kbGVyKSwg
bWVzc2FnZXMgPSBXVEZNb3ZlKG1lc3NhZ2VzKSwgY29tcGxldGlvbkNhbGxiYWNrID0gV1RGTW92
ZShjb21wbGV0aW9uQ2FsbGJhY2spXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7
CiAgICAgICAgICAgICBpbm5lckhhbmRsZXIoV1RGTW92ZShtZXNzYWdlcykpOwogICAgICAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb21wbGV0aW9uQ2FsbGJhY2sgPSBXVEZNb3Zl
KGNvbXBsZXRpb25DYWxsYmFjayldIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uQ2FsbGJh
Y2soKTsKQEAgLTI4NSw2ICsyNzgsMjAgQEAgdm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNz
YWdlcygpCiAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLnRha2VB
bGxNZXNzYWdlc0ZvclBvcnQobV9pZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2VzVGFrZW5IYW5k
bGVyKSk7CiB9CiAKK3ZvaWQgTWVzc2FnZVBvcnQ6OnVwZGF0ZUFjdGl2aXR5KE1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkKK3sKKyAgICBib29sIGhh
c0hhZExvY2FsQWN0aXZpdHkgPSBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjazsK
KyAgICBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjayA9IGZhbHNlOworCisgICAg
aWYgKGhhc0FjdGl2aXR5ID09IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0
eTo6Tm8gJiYgIWhhc0hhZExvY2FsQWN0aXZpdHkpCisgICAgICAgIG1faXNSZW1vdGVFbGlnaWJs
ZUZvckdDID0gdHJ1ZTsKKworICAgIGlmIChoYXNBY3Rpdml0eSA9PSBNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6OlllcykKKyAgICAgICAgbV9pc1JlbW90ZUVsaWdpYmxl
Rm9yR0MgPSBmYWxzZTsKKworICAgIG1faXNBc2tpbmdSZW1vdGVBYm91dEdDID0gZmFsc2U7Cit9
CisKIGJvb2wgTWVzc2FnZVBvcnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAg
bV9taWdodEJlRWxpZ2libGVGb3JHQyA9IHRydWU7CkBAIC0zMDMsMzEgKzMxMCwxMCBAQCBib29s
IE1lc3NhZ2VQb3J0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiAgICAgLy8gSWYgd2Un
cmUgbm90IGluIHRoZSBtaWRkbGUgb2YgYXNraW5nIHRoZSByZW1vdGUgcG9ydCBhYm91dCBjb2xs
ZWN0YWJpbGl0eSwgZG8gc28gbm93LgogICAgIGlmICghbV9pc0Fza2luZ1JlbW90ZUFib3V0R0Mp
IHsKLSAgICAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNr
UmVtb3RlUG9ydEZvckFjdGl2aXR5KG1fcmVtb3RlSWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0Fj
dGl2aXR5IGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGF1dG8gaW5uZXJIYW5k
bGVyID0gW3RoaXMsIG90aGVyUHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyld
KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgewot
ICAgICAgICAgICAgICAgIGJvb2wgaGFzSGFkTG9jYWxBY3Rpdml0eSA9IG1faGFzSGFkTG9jYWxB
Y3Rpdml0eVNpbmNlTGFzdENoZWNrOwotICAgICAgICAgICAgICAgIG1faGFzSGFkTG9jYWxBY3Rp
dml0eVNpbmNlTGFzdENoZWNrID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICBpZiAoaGFzQWN0
aXZpdHkgPT0gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpObyAmJiAh
aGFzSGFkTG9jYWxBY3Rpdml0eSkKLSAgICAgICAgICAgICAgICAgICAgbV9pc1JlbW90ZUVsaWdp
YmxlRm9yR0MgPSB0cnVlOwotCi0gICAgICAgICAgICAgICAgaWYgKGhhc0FjdGl2aXR5ID09IE1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6WWVzKQotICAgICAgICAgICAg
ICAgICAgICBtX2lzUmVtb3RlRWxpZ2libGVGb3JHQyA9IGZhbHNlOwotCi0gICAgICAgICAgICAg
ICAgbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MgPSBmYWxzZTsKLSAgICAgICAgICAgIH07Ci0KLQot
ICAgICAgICAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5p
c0NvbnRleHRUaHJlYWQoKSkgewotICAgICAgICAgICAgICAgIGlubmVySGFuZGxlcihoYXNBY3Rp
dml0eSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFtpbm5lckhhbmRsZXIgPSBX
VEZNb3ZlKGlubmVySGFuZGxlciksIGhhc0FjdGl2aXR5XShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JikgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaW5uZXJIYW5kbGVyKGhhc0FjdGl2aXR5KTsK
KyAgICAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVt
b3RlUG9ydEZvckFjdGl2aXR5KG1fcmVtb3RlSWRlbnRpZmllciwgW3dlYWtUaGlzID0gY29uc3Rf
Y2FzdDxNZXNzYWdlUG9ydCo+KHRoaXMpLT5jcmVhdGVXZWFrUHRyKCksIGNvbnRleHRJZGVudGlm
aWVyID0gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250ZXh0SWRlbnRpZmllcigpXShNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpIG11dGFibGUg
eworICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhjb250ZXh0
SWRlbnRpZmllciwgW3dlYWtUaGlzLCBoYXNBY3Rpdml0eV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAg
ICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5KTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9KTsKICAgICAgICAgbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAppbmRleCAzNTg4Zjk0OWQ4YjlmMzc3YTQxZDY2
MjA5NmVlNDAxNDFhZTYyZDcyLi5iNjdiMWEwYjUxMmI2OWVhNmJiOTlhZGU4MGYxNGY1NGQxMmI3
YWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1
ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0SWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCisjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewogY2xhc3MgRXhlY1N0YXRlOwpAQCAtNDgsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxNZXNzYWdlUG9ydD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBN
ZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IHJlbW90ZSk7CiAgICAgdmlydHVhbCB+TWVzc2FnZVBvcnQoKTsKIAorICAgIGF1dG8mIHdlYWtQ
dHJGYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV93ZWFrRmFjdG9yeTsgfQorCiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgbWVz
c2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKIAogICAgIHZvaWQg
c3RhcnQoKTsKQEAgLTEwNiwxMCArMTEwLDE1IEBAIHByaXZhdGU6CiAgICAgLy8gQSBwb3J0IHN0
YXJ0cyBvdXQgaXRzIGxpZmUgZW50YW5nbGVkLCBhbmQgcmVtYWlucyBlbnRhbmdsZWQgdW50aWwg
aXQgaXMgY2xvc2VkIG9yIGlzIGNsb25lZC4KICAgICBib29sIGlzRW50YW5nbGVkKCkgY29uc3Qg
eyByZXR1cm4gIW1fY2xvc2VkICYmIG1fZW50YW5nbGVkOyB9CiAKKyAgICBXZWFrUHRyPE1lc3Nh
Z2VQb3J0PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKTsgfQorICAgIHZvaWQgdXBkYXRlQWN0aXZpdHkoTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXI6Okhhc0FjdGl2aXR5KTsKKwogICAgIGJvb2wgbV9zdGFydGVkIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fY2xvc2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50YW5nbGVkIHsgdHJ1
ZSB9OwogCisgICAgV2Vha1B0ckZhY3Rvcnk8TWVzc2FnZVBvcnQ+IG1fd2Vha0ZhY3Rvcnk7CisK
ICAgICAvLyBGbGFncyB0byBtYW5hZ2UgcXVlcnlpbmcgdGhlIHJlbW90ZSBwb3J0IGZvciBHQyBw
dXJwb3NlcwogICAgIG11dGFibGUgYm9vbCBtX21pZ2h0QmVFbGlnaWJsZUZvckdDIHsgZmFsc2Ug
fTsKICAgICBtdXRhYmxlIGJvb2wgbV9oYXNIYWRMb2NhbEFjdGl2aXR5U2luY2VMYXN0Q2hlY2sg
eyBmYWxzZSB9OwpAQCAtMTIxLDYgKzEzMCwxMCBAQCBwcml2YXRlOgogICAgIE1lc3NhZ2VQb3J0
SWRlbnRpZmllciBtX3JlbW90ZUlkZW50aWZpZXI7CiAKICAgICBtdXRhYmxlIHN0ZDo6YXRvbWlj
PHVuc2lnbmVkPiBtX3JlZkNvdW50IHsgMSB9OworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAg
IFJlZjxUaHJlYWQ+IG1fY3JlYXRpb25UaHJlYWQgeyBUaHJlYWQ6OmN1cnJlbnQoKSB9OworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjI2OGRhNTQ4NmFhMWE0
NzI4MGI0NTg4MTI2MzQ5YzE4OWMwMmFlZS4uZWQwZTI3YTQ4OWY4NTA5YjQ2OTE4YzBjMDdlMWQy
ODJmYTdiMjM0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAzLTE0ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZXNzYWdlUG9ydCBpcyBub3QgYWx3
YXlzIGRlc3Ryb3llZCBvbiB0aGUgcmlnaHQgdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2MTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzM4MjA0NzExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9y
dC0yLmh0bWw6IEFkZGVkLgorCiAyMDE4LTAzLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdlUG9ydCBzaG91bGQgcmVtb3ZlIGl0cyBsaXN0ZW5l
cnMgd2hlbiBiZWluZyBjbG9zZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0LTItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vw
b3J0LTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGMwODFlMWZmZTU3YzMzYzUyM2M0ZGI0YjhkMzJiMTFlNTI0ZDViZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2Fn
ZXBvcnQtMi5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0IHBv
c3RNZXNzYWdlIGFuZCBnYXJiYWdlIGNvbGxlY3Rpb24uPC9wPgorPGRpdiBpZD1yZXN1bHQ+PC9k
aXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciB3
b3JrZXIgPSBuZXcgV29ya2VyKCdyZXNvdXJjZXMvbWVzc2FnZXBvcnQtZWNoby13b3JrZXIuanMn
KTsKKword29ya2VyLm9ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgIGlmIChldmVudC5kYXRh
ICE9PSAicmVhZHkiKSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIkZBSUwi
OworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB3b3JrZXIudGVybWlu
YXRlKCk7CisKKyAgICBmdW5jdGlvbiBnY1JlYyhuKSB7CisgICAgICAgIGlmIChuIDwgMSkKKyAg
ICAgICAgICAgIHJldHVybiB7fTsKKyAgICAgICAgdmFyIHRlbXAgPSB7aTogImFiIiArIGkgKyAo
aSAvIDEwMDAwMCl9OworICAgICAgICB0ZW1wICs9ICJmb28iOworICAgICAgICBnY1JlYyhuLTEp
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKQorICAgICAgICBn
Y1JlYygxMCk7CisKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOworfQorCit2YXIg
Y2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSAoZXZlbnQpID0+IHsgIH07Cit3b3JrZXIucG9zdE1lc3NhZ2UoIkhlcmUgaXMgeW91ciBwb3J0
IiwgW2NoYW5uZWwucG9ydDJdKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335816</attachid>
            <date>2018-03-14 17:46:16 -0700</date>
            <delta_ts>2018-03-14 21:19:44 -0700</delta_ts>
            <desc>Version without postTaskTo</desc>
            <filename>bug-183619-20180314174611.patch</filename>
            <type>text/plain</type>
            <size>12294</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxZTYxMzkwNmVhZWY4
YjgzNTliNDAyNmNkYTU1OGUxYmVmNjQzMi4uZDQwYjAwM2YwZmQyOTdiN2VhZDkyMTM3ZDExNGRk
ZTI2Yjc3MTI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTAzLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZXNzYWdlUG9ydCBpcyBu
b3QgYWx3YXlzIGRlc3Ryb3llZCBvbiB0aGUgcmlnaHQgdGhyZWFkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2MTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM4MjA0NzExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhc3NlcnRpb24gdG8gZW5zdXJlIE1lc3NhZ2VQb3J0IGlzIGRlc3Ryb3ll
ZCBpbiB0aGUgcmlnaHQgdGhyZWFkLgorICAgICAgICBNb2RpZnkgbWV0aG9kcyB0YWtpbmcgYSBy
ZWYgaW4gYSBsYW1iZGEgdG8gcmVseSBvbiB3ZWFrIHBvaW50ZXJzIGFuZCBjb250ZXh0IGlkZW50
aWZpZXIuCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBv
cnQtMi5odG1sCisKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVzc2FnZVBvcnQ6On5NZXNzYWdlUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNz
YWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9y
dDo6dXBkYXRlQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6Omhhc1Bl
bmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Lmg6CisKIDIw
MTgtMDMtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1l
c3NhZ2VQb3J0IHNob3VsZCByZW1vdmUgaXRzIGxpc3RlbmVycyB3aGVuIGJlaW5nIGNsb3NlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggMDhmNzU3MmIxMDQxNTlmODI5MjU4ZWI1
MjIzYjY5Mzg0Y2VmNTVlMS4uYjQxOGYxNGI2MzkwOWE0YTcxZWQwMjI5N2NlYzkyZDFhNGY1MThm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cy5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVk
ZSAiV29ya2VyVGhyZWFkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA4LDYgKzEw
OSw4IEBAIE1lc3NhZ2VQb3J0OjpNZXNzYWdlUG9ydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb25zdCBNCiAKIE1lc3NhZ2VQb3J0Ojp+TWVzc2FnZVBv
cnQoKQogeworICAgIEFTU0VSVChtX2NyZWF0aW9uVGhyZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1
cnJlbnQoKSk7CisKICAgICBMT0coTWVzc2FnZVBvcnRzLCAiRGVzdHJveWVkIE1lc3NhZ2VQb3J0
ICVzICglcCkgaW4gcHJvY2VzcyAlIiBQUkl1NjQsIG1faWRlbnRpZmllci5sb2dTdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCB0aGlzLCBQcm9jZXNzOjppZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAK
ICAgICBBU1NFUlQoYWxsTWVzc2FnZVBvcnRzTG9jaygpLmlzTG9ja2VkKCkpOwpAQCAtMjQzLDgg
KzI0NiwxNSBAQCB2b2lkIE1lc3NhZ2VQb3J0OjpkaXNwYXRjaE1lc3NhZ2VzKCkKICAgICBpZiAo
IWlzRW50YW5nbGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gbWVzc2FnZXNUYWtl
bkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShWZWN0b3I8
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYgbWVzc2FnZXMsIEZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uQ2FsbGJhY2spIG11dGFibGUgewotICAgICAgICBhdXRvIGlubmVySGFuZGxlciA9
IFt0aGlzLCBvdGhlclByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXShWZWN0
b3I8TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYgbWVzc2FnZXMpIHsKKyAgICBSZWZQdHI8V29y
a2VyVGhyZWFkPiB3b3JrZXJUaHJlYWQ7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgd29ya2VyVGhyZWFkID0gJmRvd25j
YXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQo
KTsKKworICAgIGF1dG8gbWVzc2FnZXNUYWtlbkhhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBj
b25zdF9jYXN0PE1lc3NhZ2VQb3J0Kj4odGhpcyktPmNyZWF0ZVdlYWtQdHIoKSwgd29ya2VyVGhy
ZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHM+JiYgbWVzc2FnZXMsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uQ2FsbGJhY2spIG11
dGFibGUgeworICAgICAgICBhdXRvIGlubmVySGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpc10oVmVj
dG9yPE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzKSB7CisgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAgICAgTE9H
KE1lc3NhZ2VQb3J0cywgIk1lc3NhZ2VQb3J0ICVzICglcCkgZGlzcGF0Y2hpbmcgJXp1IG1lc3Nh
Z2VzIiwgbV9pZGVudGlmaWVyLmxvZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIG1lc3Nh
Z2VzLnNpemUoKSk7CiAKICAgICAgICAgICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KQpAQCAtMjY1LDI2ICsyNzUsMzYgQEAgdm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdl
cygpCiAgICAgICAgICAgICB9CiAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKCFtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpIHsKKyAgICAgICAgaWYgKCF3
b3JrZXJUaHJlYWQpIHsKICAgICAgICAgICAgIGlubmVySGFuZGxlcihXVEZNb3ZlKG1lc3NhZ2Vz
KSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uQ2FsbGJhY2soKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotCi0gICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRh
c2soW2lubmVySGFuZGxlciA9IFdURk1vdmUoaW5uZXJIYW5kbGVyKSwgbWVzc2FnZXMgPSBXVEZN
b3ZlKG1lc3NhZ2VzKSwgY29tcGxldGlvbkNhbGxiYWNrID0gV1RGTW92ZShjb21wbGV0aW9uQ2Fs
bGJhY2spXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIHdvcmtl
clRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbaW5uZXJIYW5kbGVyID0gV1RGTW92
ZShpbm5lckhhbmRsZXIpLCBtZXNzYWdlcyA9IFdURk1vdmUobWVzc2FnZXMpLCBjb21wbGV0aW9u
Q2FsbGJhY2sgPSBXVEZNb3ZlKGNvbXBsZXRpb25DYWxsYmFjayldKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlubmVySGFuZGxlcihXVEZNb3ZlKG1lc3Nh
Z2VzKSk7CiAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25D
YWxsYmFjayA9IFdURk1vdmUoY29tcGxldGlvbkNhbGxiYWNrKV0gewogICAgICAgICAgICAgICAg
IGNvbXBsZXRpb25DYWxsYmFjaygpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAg
ICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICB9OwogCiAgICAgTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLnRha2VBbGxNZXNzYWdlc0ZvclBv
cnQobV9pZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2VzVGFrZW5IYW5kbGVyKSk7CiB9CiAKK3Zv
aWQgTWVzc2FnZVBvcnQ6OnVwZGF0ZUFjdGl2aXR5KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
OjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkKK3sKKyAgICBib29sIGhhc0hhZExvY2FsQWN0aXZp
dHkgPSBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjazsKKyAgICBtX2hhc0hhZExv
Y2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjayA9IGZhbHNlOworCisgICAgaWYgKGhhc0FjdGl2aXR5
ID09IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6Tm8gJiYgIWhhc0hh
ZExvY2FsQWN0aXZpdHkpCisgICAgICAgIG1faXNSZW1vdGVFbGlnaWJsZUZvckdDID0gdHJ1ZTsK
KworICAgIGlmIChoYXNBY3Rpdml0eSA9PSBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFz
QWN0aXZpdHk6OlllcykKKyAgICAgICAgbV9pc1JlbW90ZUVsaWdpYmxlRm9yR0MgPSBmYWxzZTsK
KworICAgIG1faXNBc2tpbmdSZW1vdGVBYm91dEdDID0gZmFsc2U7Cit9CisKIGJvb2wgTWVzc2Fn
ZVBvcnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgbV9taWdodEJlRWxpZ2li
bGVGb3JHQyA9IHRydWU7CkBAIC0zMDMsMzIgKzMyMywyMiBAQCBib29sIE1lc3NhZ2VQb3J0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiAgICAgLy8gSWYgd2UncmUgbm90IGluIHRoZSBt
aWRkbGUgb2YgYXNraW5nIHRoZSByZW1vdGUgcG9ydCBhYm91dCBjb2xsZWN0YWJpbGl0eSwgZG8g
c28gbm93LgogICAgIGlmICghbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MpIHsKLSAgICAgICAgTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLmNoZWNrUmVtb3RlUG9ydEZvckFj
dGl2aXR5KG1fcmVtb3RlSWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5IGhhc0FjdGl2
aXR5KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGF1dG8gaW5uZXJIYW5kbGVyID0gW3RoaXMsIG90
aGVyUHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgewotICAgICAgICAgICAgICAg
IGJvb2wgaGFzSGFkTG9jYWxBY3Rpdml0eSA9IG1faGFzSGFkTG9jYWxBY3Rpdml0eVNpbmNlTGFz
dENoZWNrOwotICAgICAgICAgICAgICAgIG1faGFzSGFkTG9jYWxBY3Rpdml0eVNpbmNlTGFzdENo
ZWNrID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICBpZiAoaGFzQWN0aXZpdHkgPT0gTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpObyAmJiAhaGFzSGFkTG9jYWxBY3Rp
dml0eSkKLSAgICAgICAgICAgICAgICAgICAgbV9pc1JlbW90ZUVsaWdpYmxlRm9yR0MgPSB0cnVl
OwotCi0gICAgICAgICAgICAgICAgaWYgKGhhc0FjdGl2aXR5ID09IE1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6WWVzKQotICAgICAgICAgICAgICAgICAgICBtX2lzUmVt
b3RlRWxpZ2libGVGb3JHQyA9IGZhbHNlOworICAgICAgICBSZWZQdHI8V29ya2VyVGhyZWFkPiB3
b3JrZXJUaHJlYWQ7CisgICAgICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICB3b3JrZXJUaHJlYWQgPSAmZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLnRocmVhZCgpOwog
Ci0gICAgICAgICAgICAgICAgbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MgPSBmYWxzZTsKLSAgICAg
ICAgICAgIH07CisgICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpzaW5nbGV0b24o
KS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShtX3JlbW90ZUlkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IGNvbnN0X2Nhc3Q8TWVzc2FnZVBvcnQqPih0aGlzKS0+Y3JlYXRlV2Vha1B0cigpLCB3b3Jr
ZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgbXV0YWJsZSB7CiAKLQotICAgICAgICAgICAg
aWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRUaHJl
YWQoKSkgewotICAgICAgICAgICAgICAgIGlubmVySGFuZGxlcihoYXNBY3Rpdml0eSk7CisgICAg
ICAgICAgICBpZiAoIXdvcmtlclRocmVhZCkgeworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhp
cykKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2
aXR5KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soW2lubmVySGFuZGxlciA9IFdU
Rk1vdmUoaW5uZXJIYW5kbGVyKSwgaGFzQWN0aXZpdHldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpbm5lckhhbmRsZXIoaGFzQWN0aXZpdHkpOwot
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFza0Zvck1vZGUoW3dlYWtUaGlzLCBoYXNBY3Rpdml0eV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAg
ICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5KTsKKyAgICAgICAg
ICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9KTsKICAgICAg
ICAgbV9pc0Fza2luZ1JlbW90ZUFib3V0R0MgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VQb3J0LmgKaW5kZXggMzU4OGY5NDlkOGI5ZjM3N2E0MWQ2NjIwOTZlZTQwMTQxYWU2MmQ3Mi4u
YjY3YjFhMGI1MTJiNjllYTZiYjk5YWRlODBmMTRmNTRkMTJiN2FiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01l
c3NhZ2VQb3J0LmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5u
ZWwuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cy5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsK
QEAgLTQ4LDYgKzUwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVzc2FnZVBvcnQ+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVy
JiBsb2NhbCwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpOwogICAgIHZpcnR1
YWwgfk1lc3NhZ2VQb3J0KCk7CiAKKyAgICBhdXRvJiB3ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsg
cmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KKwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNz
YWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CiAKICAgICB2b2lkIHN0YXJ0KCk7CkBAIC0xMDYsMTAg
KzExMCwxNSBAQCBwcml2YXRlOgogICAgIC8vIEEgcG9ydCBzdGFydHMgb3V0IGl0cyBsaWZlIGVu
dGFuZ2xlZCwgYW5kIHJlbWFpbnMgZW50YW5nbGVkIHVudGlsIGl0IGlzIGNsb3NlZCBvciBpcyBj
bG9uZWQuCiAgICAgYm9vbCBpc0VudGFuZ2xlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2Nsb3NlZCAm
JiBtX2VudGFuZ2xlZDsgfQogCisgICAgV2Vha1B0cjxNZXNzYWdlUG9ydD4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KKyAgICB2
b2lkIHVwZGF0ZUFjdGl2aXR5KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0
eSk7CisKICAgICBib29sIG1fc3RhcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Nsb3NlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2VudGFuZ2xlZCB7IHRydWUgfTsKIAorICAgIFdlYWtQdHJG
YWN0b3J5PE1lc3NhZ2VQb3J0PiBtX3dlYWtGYWN0b3J5OworCiAgICAgLy8gRmxhZ3MgdG8gbWFu
YWdlIHF1ZXJ5aW5nIHRoZSByZW1vdGUgcG9ydCBmb3IgR0MgcHVycG9zZXMKICAgICBtdXRhYmxl
IGJvb2wgbV9taWdodEJlRWxpZ2libGVGb3JHQyB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29s
IG1faGFzSGFkTG9jYWxBY3Rpdml0eVNpbmNlTGFzdENoZWNrIHsgZmFsc2UgfTsKQEAgLTEyMSw2
ICsxMzAsMTAgQEAgcHJpdmF0ZToKICAgICBNZXNzYWdlUG9ydElkZW50aWZpZXIgbV9yZW1vdGVJ
ZGVudGlmaWVyOwogCiAgICAgbXV0YWJsZSBzdGQ6OmF0b21pYzx1bnNpZ25lZD4gbV9yZWZDb3Vu
dCB7IDEgfTsKKworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBSZWY8VGhyZWFkPiBtX2NyZWF0
aW9uVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50KCkgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIyNjhkYTU0ODZhYTFhNDcyODBiNDU4ODEyNjM0OWMxODlj
MDJhZWUuLjZmODI2OGYyZjJjZDcyNDgyNTVhZDk2OGZlMjk5YWRhNDJkMTU1MzMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOC0wMy0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgTWVzc2FnZVBvcnQgaXMgbm90IGFsd2F5cyBkZXN0cm95ZWQgb24gdGhl
IHJpZ2h0IHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzNjE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODIwNDcxMT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1t
ZXNzYWdlcG9ydC0yLmh0bWw6IEFkZGVkLgorCiAyMDE4LTAzLTE0ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdlUG9ydCBzaG91bGQgcmVtb3ZlIGl0
cyBsaXN0ZW5lcnMgd2hlbiBiZWluZyBjbG9zZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ1NTRj
NTNmMzY4YzViZDJjMWM3ODBkZmRiMmY0OGM5YjM4N2Q3OWIuLjgyMzFkODQzMzM5NDhkOTUwOTFh
ZDQ0NWE5NjdkODgzNmM4YzE3NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA2LDYgKzIwNiw4
IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkCiAjIFJlZW5hYmxlIGl0IHdoZW4gaGF2aW5nIGEg
Y3VzdG9tIGdjIGV4cG9zZWQgaW4gc2VydmljZSB3b3JrZXJzLgogWyBEZWJ1ZyBdIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaEV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIAorWyBEZWJ1
ZyBdIGh0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi5odG1sIFsgU2xvdyBd
CisKICMgU2tpcCB3b3JrZXJzIHRlc3RzIHRoYXQgYXJlIHRpbWluZyBvdXQgb3IgYXJlIFNoYXJl
ZFdvcmtlciByZWxhdGVkIG9ubHkKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9kYXRhLXVybC1zaGFyZWQuaHRtbCBb
IFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtl
ci1tZXNzYWdlcG9ydC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJl
OWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0LTIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzA4
MWUxZmZlNTdjMzNjNTIzYzRkYjRiOGQzMmIxMWU1MjRkNWJlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwK
QEAgLTAsMCArMSw0NSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgcG9zdE1lc3NhZ2UgYW5k
IGdhcmJhZ2UgY29sbGVjdGlvbi48L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxzY3JpcHQ+
CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIHdvcmtlciA9IG5ldyBX
b3JrZXIoJ3Jlc291cmNlcy9tZXNzYWdlcG9ydC1lY2hvLXdvcmtlci5qcycpOworCit3b3JrZXIu
b25tZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LmRhdGEgIT09ICJyZWFkeSIp
IHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiRkFJTCI7CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHdvcmtlci50ZXJtaW5hdGUoKTsKKworICAg
IGZ1bmN0aW9uIGdjUmVjKG4pIHsKKyAgICAgICAgaWYgKG4gPCAxKQorICAgICAgICAgICAgcmV0
dXJuIHt9OworICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSArIChpIC8gMTAwMDAwKX07
CisgICAgICAgIHRlbXAgKz0gImZvbyI7CisgICAgICAgIGdjUmVjKG4tMSk7CisgICAgfQorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCisgICAgICAgIGdjUmVjKDEwKTsKKwor
ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9
ICJQQVNTIjsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9CisKK3ZhciBjaGFubmVsID0gbmV3
IE1lc3NhZ2VDaGFubmVsKCk7CitjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChldmVudCkgPT4g
eyAgfTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiSGVyZSBpcyB5b3VyIHBvcnQiLCBbY2hhbm5lbC5w
b3J0Ml0pOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335829</attachid>
            <date>2018-03-14 21:19:45 -0700</date>
            <delta_ts>2018-03-15 10:03:26 -0700</delta_ts>
            <desc>Fixing log</desc>
            <filename>bug-183619-20180314211944.patch</filename>
            <type>text/plain</type>
            <size>12456</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxZTYxMzkwNmVhZWY4
YjgzNTliNDAyNmNkYTU1OGUxYmVmNjQzMi4uOGFmMTEyNjRiYmY2MTFjMTAwMjE3NDhjZjlhZjE3
YjNmMTFjMTExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTAzLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZXNzYWdlUG9ydCBpcyBu
b3QgYWx3YXlzIGRlc3Ryb3llZCBvbiB0aGUgcmlnaHQgdGhyZWFkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2MTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM4MjA0NzExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhc3NlcnRpb24gdG8gZW5zdXJlIE1lc3NhZ2VQb3J0IGlzIGRlc3Ryb3ll
ZCBpbiB0aGUgcmlnaHQgdGhyZWFkLgorICAgICAgICBNb2RpZnkgbWV0aG9kcyB0YWtpbmcgYSBy
ZWYgaW4gYSBsYW1iZGEgdG8gcmVseSBvbiB3ZWFrIHBvaW50ZXJzIGFuZCByZWZpbmcgdGhlIFdv
cmtlclRocmVhZCBpZiBpbiBhIHdvcmtlciBjb250ZXh0LgorICAgICAgICBJdCBpcyBzYWZlIHRv
IHJlZiB0aGUgV29ya2VyVGhyZWFkIHNpbmNlIGl0IGlzIHRocmVhZCBzYWZlIHJlZiBjb3VudGVk
IGFuZCB3ZSBhcmUgcGFzc2luZyB0aGUgcmVmIHRvIHRoZSBtYWluIHRocmVhZAorICAgICAgICB3
aGVyZSB0aGUgV29ya2VyVGhyZWFkIGlzIGV4cGVjdGVkIHRvIGJlIGRlc3Ryb3llZC4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0LTIuaHRtbAor
CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3Nh
Z2VQb3J0Ojp+TWVzc2FnZVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6OmRp
c3BhdGNoTWVzc2FnZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6OnVwZGF0ZUFj
dGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpoYXNQZW5kaW5nQWN0aXZp
dHkgY29uc3QpOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5oOgorCiAyMDE4LTAzLTE0ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdlUG9ydCBz
aG91bGQgcmVtb3ZlIGl0cyBsaXN0ZW5lcnMgd2hlbiBiZWluZyBjbG9zZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuY3BwCmluZGV4IDA4Zjc1NzJiMTA0MTU5ZjgyOTI1OGViNTIyM2I2OTM4NGNl
ZjU1ZTEuLjdmOTBmM2E4ZTFlZmU5MGEyMjgzOTgzZDAxN2ZjYTE2NzZlYTA4OGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlclRo
cmVhZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwOCw2ICsxMDksOCBAQCBNZXNz
YWdlUG9ydDo6TWVzc2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgY29uc3QgTQogCiBNZXNzYWdlUG9ydDo6fk1lc3NhZ2VQb3J0KCkKIHsKKyAg
ICBBU1NFUlQobV9jcmVhdGlvblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwor
CiAgICAgTE9HKE1lc3NhZ2VQb3J0cywgIkRlc3Ryb3llZCBNZXNzYWdlUG9ydCAlcyAoJXApIGlu
IHByb2Nlc3MgJSIgUFJJdTY0LCBtX2lkZW50aWZpZXIubG9nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgdGhpcywgUHJvY2Vzczo6aWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogCiAgICAgQVNTRVJU
KGFsbE1lc3NhZ2VQb3J0c0xvY2soKS5pc0xvY2tlZCgpKTsKQEAgLTI0Myw4ICsyNDYsMTUgQEAg
dm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgaWYgKCFpc0VudGFuZ2xl
ZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIG1lc3NhZ2VzVGFrZW5IYW5kbGVyID0g
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oVmVjdG9yPE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkNh
bGxiYWNrKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBpbm5lckhhbmRsZXIgPSBbdGhpcywgb3Ro
ZXJQcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oVmVjdG9yPE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzKSB7CisgICAgUmVmUHRyPFdvcmtlclRocmVhZD4g
d29ya2VyVGhyZWFkOworICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkpCisgICAgICAgIHdvcmtlclRocmVhZCA9ICZkb3duY2FzdDxXb3JrZXJH
bG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCk7CisKKyAgICBh
dXRvIG1lc3NhZ2VzVGFrZW5IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0
cigpLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKFZlY3RvcjxNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cz4mJiBtZXNzYWdlcywgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25DYWxsYmFjaykgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gaW5uZXJIYW5kbGVyID0gW3RoaXMs
IHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldKGF1dG8mJiBtZXNzYWdlcykgeworICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAg
ICAgIExPRyhNZXNzYWdlUG9ydHMsICJNZXNzYWdlUG9ydCAlcyAoJXApIGRpc3BhdGNoaW5nICV6
dSBtZXNzYWdlcyIsIG1faWRlbnRpZmllci5sb2dTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0aGlz
LCBtZXNzYWdlcy5zaXplKCkpOwogCiAgICAgICAgICAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKQEAgLTI2NSwyNiArMjc1LDM2IEBAIHZvaWQgTWVzc2FnZVBvcnQ6OmRpc3BhdGNo
TWVzc2FnZXMoKQogICAgICAgICAgICAgfQogICAgICAgICB9OwogCi0gICAgICAgIGlmICghbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlm
IChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKSB7CisgICAgICAg
IGlmICghd29ya2VyVGhyZWFkKSB7CiAgICAgICAgICAgICBpbm5lckhhbmRsZXIoV1RGTW92ZSht
ZXNzYWdlcykpOwogICAgICAgICAgICAgY29tcGxldGlvbkNhbGxiYWNrKCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLQotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PnBvc3RUYXNrKFtpbm5lckhhbmRsZXIgPSBXVEZNb3ZlKGlubmVySGFuZGxlciksIG1lc3NhZ2Vz
ID0gV1RGTW92ZShtZXNzYWdlcyksIGNvbXBsZXRpb25DYWxsYmFjayA9IFdURk1vdmUoY29tcGxl
dGlvbkNhbGxiYWNrKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAg
ICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2lubmVySGFuZGxlciA9
IFdURk1vdmUoaW5uZXJIYW5kbGVyKSwgbWVzc2FnZXMgPSBXVEZNb3ZlKG1lc3NhZ2VzKSwgY29t
cGxldGlvbkNhbGxiYWNrID0gV1RGTW92ZShjb21wbGV0aW9uQ2FsbGJhY2spXShhdXRvJikgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpbm5lckhhbmRsZXIoV1RGTW92ZShtZXNzYWdlcykpOwogICAg
ICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb21wbGV0aW9uQ2FsbGJhY2sgPSBX
VEZNb3ZlKGNvbXBsZXRpb25DYWxsYmFjayldIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
Q2FsbGJhY2soKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgfTsKIAogICAgIE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS50YWtlQWxsTWVzc2FnZXNGb3JQb3J0KG1faWRlbnRp
ZmllciwgV1RGTW92ZShtZXNzYWdlc1Rha2VuSGFuZGxlcikpOwogfQogCit2b2lkIE1lc3NhZ2VQ
b3J0Ojp1cGRhdGVBY3Rpdml0eShNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZp
dHkgaGFzQWN0aXZpdHkpCit7CisgICAgYm9vbCBoYXNIYWRMb2NhbEFjdGl2aXR5ID0gbV9oYXNI
YWRMb2NhbEFjdGl2aXR5U2luY2VMYXN0Q2hlY2s7CisgICAgbV9oYXNIYWRMb2NhbEFjdGl2aXR5
U2luY2VMYXN0Q2hlY2sgPSBmYWxzZTsKKworICAgIGlmIChoYXNBY3Rpdml0eSA9PSBNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6Ok5vICYmICFoYXNIYWRMb2NhbEFjdGl2
aXR5KQorICAgICAgICBtX2lzUmVtb3RlRWxpZ2libGVGb3JHQyA9IHRydWU7CisKKyAgICBpZiAo
aGFzQWN0aXZpdHkgPT0gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpZ
ZXMpCisgICAgICAgIG1faXNSZW1vdGVFbGlnaWJsZUZvckdDID0gZmFsc2U7CisKKyAgICBtX2lz
QXNraW5nUmVtb3RlQWJvdXRHQyA9IGZhbHNlOworfQorCiBib29sIE1lc3NhZ2VQb3J0OjpoYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIG1fbWlnaHRCZUVsaWdpYmxlRm9yR0MgPSB0
cnVlOwpAQCAtMzAzLDMyICszMjMsMjIgQEAgYm9vbCBNZXNzYWdlUG9ydDo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKIAogICAgIC8vIElmIHdlJ3JlIG5vdCBpbiB0aGUgbWlkZGxlIG9mIGFz
a2luZyB0aGUgcmVtb3RlIHBvcnQgYWJvdXQgY29sbGVjdGFiaWxpdHksIGRvIHNvIG5vdy4KICAg
ICBpZiAoIW1faXNBc2tpbmdSZW1vdGVBYm91dEdDKSB7Ci0gICAgICAgIE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShtX3Jl
bW90ZUlkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKE1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICBhdXRvIGlubmVySGFuZGxlciA9IFt0aGlzLCBvdGhlclByb3RlY3Rl
ZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXShNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpIHsKLSAgICAgICAgICAgICAgICBib29sIGhhc0hh
ZExvY2FsQWN0aXZpdHkgPSBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjazsKLSAg
ICAgICAgICAgICAgICBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjayA9IGZhbHNl
OwotCi0gICAgICAgICAgICAgICAgaWYgKGhhc0FjdGl2aXR5ID09IE1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6Tm8gJiYgIWhhc0hhZExvY2FsQWN0aXZpdHkpCi0gICAg
ICAgICAgICAgICAgICAgIG1faXNSZW1vdGVFbGlnaWJsZUZvckdDID0gdHJ1ZTsKLQotICAgICAg
ICAgICAgICAgIGlmIChoYXNBY3Rpdml0eSA9PSBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6
SGFzQWN0aXZpdHk6OlllcykKLSAgICAgICAgICAgICAgICAgICAgbV9pc1JlbW90ZUVsaWdpYmxl
Rm9yR0MgPSBmYWxzZTsKKyAgICAgICAgUmVmUHRyPFdvcmtlclRocmVhZD4gd29ya2VyVGhyZWFk
OworICAgICAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpKQorICAgICAgICAgICAgd29ya2VyVGhyZWFkID0gJmRvd25jYXN0PFdvcmtlckdsb2Jh
bFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKTsKIAotICAgICAgICAg
ICAgICAgIG1faXNBc2tpbmdSZW1vdGVBYm91dEdDID0gZmFsc2U7Ci0gICAgICAgICAgICB9Owor
ICAgICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCkuY2hlY2tSZW1v
dGVQb3J0Rm9yQWN0aXZpdHkobV9yZW1vdGVJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBjb25zdF9j
YXN0PE1lc3NhZ2VQb3J0Kj4odGhpcyktPmNyZWF0ZVdlYWtQdHIoKSwgd29ya2VyVGhyZWFkID0g
V1RGTW92ZSh3b3JrZXJUaHJlYWQpXShNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0
aXZpdHkgaGFzQWN0aXZpdHkpIG11dGFibGUgewogCi0KLSAgICAgICAgICAgIGlmICghbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAg
ICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpIHsKLSAg
ICAgICAgICAgICAgICBpbm5lckhhbmRsZXIoaGFzQWN0aXZpdHkpOworICAgICAgICAgICAgaWYg
KCF3b3JrZXJUaHJlYWQpIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAg
ICAgICAgICAgICAgIHdlYWtUaGlzLT51cGRhdGVBY3Rpdml0eShoYXNBY3Rpdml0eSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFtpbm5lckhhbmRsZXIgPSBXVEZNb3ZlKGlubmVy
SGFuZGxlciksIGhhc0FjdGl2aXR5XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7
Ci0gICAgICAgICAgICAgICAgaW5uZXJIYW5kbGVyKGhhc0FjdGl2aXR5KTsKLSAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2Rl
KFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBoYXNBY3Rpdml0eV0oYXV0byYpIG11dGFi
bGUgeworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5KTsKKyAgICAgICAgICAgIH0sIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9KTsKICAgICAgICAgbV9pc0Fz
a2luZ1JlbW90ZUFib3V0R0MgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZXNzYWdlUG9ydC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgK
aW5kZXggMzU4OGY5NDlkOGI5ZjM3N2E0MWQ2NjIwOTZlZTQwMTQxYWU2MmQ3Mi4uYjY3YjFhMGI1
MTJiNjllYTZiYjk5YWRlODBmMTRmNTRkMTJiN2FiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL01lc3NhZ2VQb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0
LmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJNZXNzYWdlUG9ydENoYW5uZWwuaCIKICNp
bmNsdWRlICJNZXNzYWdlUG9ydElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cy5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKQEAgLTQ4LDYg
KzUwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVzc2FnZVBvcnQ+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwg
Y29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpOwogICAgIHZpcnR1YWwgfk1lc3Nh
Z2VQb3J0KCk7CiAKKyAgICBhdXRvJiB3ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
d2Vha0ZhY3Rvcnk7IH0KKwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKEpTQzo6
RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6
OkpTT2JqZWN0Pj4mJik7CiAKICAgICB2b2lkIHN0YXJ0KCk7CkBAIC0xMDYsMTAgKzExMCwxNSBA
QCBwcml2YXRlOgogICAgIC8vIEEgcG9ydCBzdGFydHMgb3V0IGl0cyBsaWZlIGVudGFuZ2xlZCwg
YW5kIHJlbWFpbnMgZW50YW5nbGVkIHVudGlsIGl0IGlzIGNsb3NlZCBvciBpcyBjbG9uZWQuCiAg
ICAgYm9vbCBpc0VudGFuZ2xlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2Nsb3NlZCAmJiBtX2VudGFu
Z2xlZDsgfQogCisgICAgV2Vha1B0cjxNZXNzYWdlUG9ydD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KKyAgICB2b2lkIHVwZGF0
ZUFjdGl2aXR5KE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk7CisKICAg
ICBib29sIG1fc3RhcnRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Nsb3NlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2VudGFuZ2xlZCB7IHRydWUgfTsKIAorICAgIFdlYWtQdHJGYWN0b3J5PE1l
c3NhZ2VQb3J0PiBtX3dlYWtGYWN0b3J5OworCiAgICAgLy8gRmxhZ3MgdG8gbWFuYWdlIHF1ZXJ5
aW5nIHRoZSByZW1vdGUgcG9ydCBmb3IgR0MgcHVycG9zZXMKICAgICBtdXRhYmxlIGJvb2wgbV9t
aWdodEJlRWxpZ2libGVGb3JHQyB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1faGFzSGFk
TG9jYWxBY3Rpdml0eVNpbmNlTGFzdENoZWNrIHsgZmFsc2UgfTsKQEAgLTEyMSw2ICsxMzAsMTAg
QEAgcHJpdmF0ZToKICAgICBNZXNzYWdlUG9ydElkZW50aWZpZXIgbV9yZW1vdGVJZGVudGlmaWVy
OwogCiAgICAgbXV0YWJsZSBzdGQ6OmF0b21pYzx1bnNpZ25lZD4gbV9yZWZDb3VudCB7IDEgfTsK
KworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBSZWY8VGhyZWFkPiBtX2NyZWF0aW9uVGhyZWFk
IHsgVGhyZWFkOjpjdXJyZW50KCkgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDIyNjhkYTU0ODZhYTFhNDcyODBiNDU4ODEyNjM0OWMxODljMDJhZWUuLjZm
ODI2OGYyZjJjZDcyNDgyNTVhZDk2OGZlMjk5YWRhNDJkMTU1MzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxOC0wMy0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWVzc2FnZVBvcnQgaXMgbm90IGFsd2F5cyBkZXN0cm95ZWQgb24gdGhlIHJpZ2h0IHRo
cmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgz
NjE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODIwNDcxMT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9y
dC0yLmh0bWw6IEFkZGVkLgorCiAyMDE4LTAzLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdlUG9ydCBzaG91bGQgcmVtb3ZlIGl0cyBsaXN0ZW5l
cnMgd2hlbiBiZWluZyBjbG9zZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ1NTRjNTNmMzY4YzVi
ZDJjMWM3ODBkZmRiMmY0OGM5YjM4N2Q3OWIuLjgyMzFkODQzMzM5NDhkOTUwOTFhZDQ0NWE5Njdk
ODgzNmM4YzE3NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA2LDYgKzIwNiw4IEBAIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtcmVkCiAjIFJlZW5hYmxlIGl0IHdoZW4gaGF2aW5nIGEgY3VzdG9tIGdj
IGV4cG9zZWQgaW4gc2VydmljZSB3b3JrZXJzLgogWyBEZWJ1ZyBdIGh0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9mZXRjaEV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIAorWyBEZWJ1ZyBdIGh0dHAv
dGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi5odG1sIFsgU2xvdyBdCisKICMgU2tp
cCB3b3JrZXJzIHRlc3RzIHRoYXQgYXJlIHRpbWluZyBvdXQgb3IgYXJlIFNoYXJlZFdvcmtlciBy
ZWxhdGVkIG9ubHkKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25z
dHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9kYXRhLXVybC1zaGFyZWQuaHRtbCBbIFNraXAgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdl
cG9ydC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy93b3Jr
ZXItbWVzc2FnZXBvcnQtMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAy
NzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0LTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzA4MWUxZmZlNTdj
MzNjNTIzYzRkYjRiOGQzMmIxMWU1MjRkNWJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwKQEAgLTAsMCAr
MSw0NSBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3QgcG9zdE1lc3NhZ2UgYW5kIGdhcmJhZ2Ug
Y29sbGVjdGlvbi48L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwordmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jl
c291cmNlcy9tZXNzYWdlcG9ydC1lY2hvLXdvcmtlci5qcycpOworCit3b3JrZXIub25tZXNzYWdl
ID0gKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LmRhdGEgIT09ICJyZWFkeSIpIHsKKyAgICAg
ICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiRkFJTCI7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIHdvcmtlci50ZXJtaW5hdGUoKTsKKworICAgIGZ1bmN0aW9u
IGdjUmVjKG4pIHsKKyAgICAgICAgaWYgKG4gPCAxKQorICAgICAgICAgICAgcmV0dXJuIHt9Owor
ICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIiICsgaSArIChpIC8gMTAwMDAwKX07CisgICAgICAg
IHRlbXAgKz0gImZvbyI7CisgICAgICAgIGdjUmVjKG4tMSk7CisgICAgfQorICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCisgICAgICAgIGdjUmVjKDEwKTsKKworICAgIHNldFRp
bWVvdXQoKCkgPT4geworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIjsK
KyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9CisKK3ZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VD
aGFubmVsKCk7CitjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IChldmVudCkgPT4geyAgfTsKK3dv
cmtlci5wb3N0TWVzc2FnZSgiSGVyZSBpcyB5b3VyIHBvcnQiLCBbY2hhbm5lbC5wb3J0Ml0pOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335856</attachid>
            <date>2018-03-15 10:03:27 -0700</date>
            <delta_ts>2018-03-15 11:21:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183619-20180315100327.patch</filename>
            <type>text/plain</type>
            <size>12429</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxZTYxMzkwNmVhZWY4
YjgzNTliNDAyNmNkYTU1OGUxYmVmNjQzMi4uNTc4MTYwODM3N2NjMzg3ZjAzOGZlMTljZDUyOGIw
YzhmMzA3ZTkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTAzLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZXNzYWdlUG9ydCBpcyBu
b3QgYWx3YXlzIGRlc3Ryb3llZCBvbiB0aGUgcmlnaHQgdGhyZWFkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2MTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM4MjA0NzExPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisg
ICAgICAgIEFkZCBhc3NlcnRpb24gdG8gZW5zdXJlIE1lc3NhZ2VQb3J0IGlzIGRlc3Ryb3llZCBp
biB0aGUgcmlnaHQgdGhyZWFkLgorICAgICAgICBNb2RpZnkgbWV0aG9kcyB0YWtpbmcgYSByZWYg
aW4gYSBsYW1iZGEgdG8gcmVseSBvbiB3ZWFrIHBvaW50ZXJzIGFuZCByZWZpbmcgdGhlIFdvcmtl
clRocmVhZCBpZiBpbiBhIHdvcmtlciBjb250ZXh0LgorICAgICAgICBJdCBpcyBzYWZlIHRvIHJl
ZiB0aGUgV29ya2VyVGhyZWFkIHNpbmNlIGl0IGlzIHRocmVhZCBzYWZlIHJlZiBjb3VudGVkIGFu
ZCB3ZSBhcmUgcGFzc2luZyB0aGUgcmVmIHRvIHRoZSBtYWluIHRocmVhZAorICAgICAgICB3aGVy
ZSB0aGUgV29ya2VyVGhyZWFkIGlzIGV4cGVjdGVkIHRvIGJlIGRlc3Ryb3llZC4KKworICAgICAg
ICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0LTIuaHRtbAorCisg
ICAgICAgICogZG9tL01lc3NhZ2VQb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQ
b3J0Ojp+TWVzc2FnZVBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6OmRpc3Bh
dGNoTWVzc2FnZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6OnVwZGF0ZUFjdGl2
aXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpoYXNQZW5kaW5nQWN0aXZpdHkg
Y29uc3QpOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5oOgorCiAyMDE4LTAzLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdlUG9ydCBzaG91
bGQgcmVtb3ZlIGl0cyBsaXN0ZW5lcnMgd2hlbiBiZWluZyBjbG9zZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZVBvcnQuY3BwCmluZGV4IDA4Zjc1NzJiMTA0MTU5ZjgyOTI1OGViNTIyM2I2OTM4NGNlZjU1
ZTEuLjIzYjlhZTQwMWUxZmJkMjUxNDc4MmI0ZDZmNjMyNTVhOWQ3N2JmZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMu
aCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlclRocmVh
ZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwOCw2ICsxMDksOCBAQCBNZXNzYWdl
UG9ydDo6TWVzc2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgY29uc3QgTQogCiBNZXNzYWdlUG9ydDo6fk1lc3NhZ2VQb3J0KCkKIHsKKyAgICBB
U1NFUlQobV9jcmVhdGlvblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOworCiAg
ICAgTE9HKE1lc3NhZ2VQb3J0cywgIkRlc3Ryb3llZCBNZXNzYWdlUG9ydCAlcyAoJXApIGluIHBy
b2Nlc3MgJSIgUFJJdTY0LCBtX2lkZW50aWZpZXIubG9nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
dGhpcywgUHJvY2Vzczo6aWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogCiAgICAgQVNTRVJUKGFs
bE1lc3NhZ2VQb3J0c0xvY2soKS5pc0xvY2tlZCgpKTsKQEAgLTI0Myw4ICsyNDYsMTYgQEAgdm9p
ZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgaWYgKCFpc0VudGFuZ2xlZCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIG1lc3NhZ2VzVGFrZW5IYW5kbGVyID0gW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oVmVjdG9yPE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzPiYmIG1lc3NhZ2VzLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkNhbGxi
YWNrKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBpbm5lckhhbmRsZXIgPSBbdGhpcywgb3RoZXJQ
cm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oVmVjdG9yPE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzKSB7CisgICAgUmVmUHRyPFdvcmtlclRocmVhZD4gd29y
a2VyVGhyZWFkOworICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkpCisgICAgICAgIHdvcmtlclRocmVhZCA9ICZkb3duY2FzdDxXb3JrZXJHbG9i
YWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCk7CisKKyAgICBhdXRv
IG1lc3NhZ2VzVGFrZW5IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhp
cyksIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oVmVjdG9yPE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzPiYmIG1lc3NhZ2VzLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlv
bkNhbGxiYWNrKSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICAgICAgYXV0byBpbm5lckhhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKV0oYXV0byYmIG1lc3NhZ2VzKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAgICAgTE9HKE1lc3NhZ2VQb3J0cywgIk1l
c3NhZ2VQb3J0ICVzICglcCkgZGlzcGF0Y2hpbmcgJXp1IG1lc3NhZ2VzIiwgbV9pZGVudGlmaWVy
LmxvZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRoaXMsIG1lc3NhZ2VzLnNpemUoKSk7CiAKICAg
ICAgICAgICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAtMjY1LDI2ICsyNzYs
MzYgQEAgdm9pZCBNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcygpCiAgICAgICAgICAgICB9
CiAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+aXNDb250ZXh0VGhyZWFkKCkpIHsKKyAgICAgICAgaWYgKCF3b3JrZXJUaHJlYWQpIHsKICAg
ICAgICAgICAgIGlubmVySGFuZGxlcihXVEZNb3ZlKG1lc3NhZ2VzKSk7CiAgICAgICAgICAgICBj
b21wbGV0aW9uQ2FsbGJhY2soKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCi0g
ICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soW2lubmVySGFuZGxlciA9
IFdURk1vdmUoaW5uZXJIYW5kbGVyKSwgbWVzc2FnZXMgPSBXVEZNb3ZlKG1lc3NhZ2VzKSwgY29t
cGxldGlvbkNhbGxiYWNrID0gV1RGTW92ZShjb21wbGV0aW9uQ2FsbGJhY2spXShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgp
LnBvc3RUYXNrRm9yTW9kZShbaW5uZXJIYW5kbGVyID0gV1RGTW92ZShpbm5lckhhbmRsZXIpLCBt
ZXNzYWdlcyA9IFdURk1vdmUobWVzc2FnZXMpLCBjb21wbGV0aW9uQ2FsbGJhY2sgPSBXVEZNb3Zl
KGNvbXBsZXRpb25DYWxsYmFjayldKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlubmVy
SGFuZGxlcihXVEZNb3ZlKG1lc3NhZ2VzKSk7CiAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW2NvbXBsZXRpb25DYWxsYmFjayA9IFdURk1vdmUoY29tcGxldGlvbkNhbGxiYWNr
KV0gewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25DYWxsYmFjaygpOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0pOworICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKICAgICB9OwogCiAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigp
LnRha2VBbGxNZXNzYWdlc0ZvclBvcnQobV9pZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2VzVGFr
ZW5IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTWVzc2FnZVBvcnQ6OnVwZGF0ZUFjdGl2aXR5KE1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkKK3sKKyAgICBi
b29sIGhhc0hhZExvY2FsQWN0aXZpdHkgPSBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RD
aGVjazsKKyAgICBtX2hhc0hhZExvY2FsQWN0aXZpdHlTaW5jZUxhc3RDaGVjayA9IGZhbHNlOwor
CisgICAgaWYgKGhhc0FjdGl2aXR5ID09IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNB
Y3Rpdml0eTo6Tm8gJiYgIWhhc0hhZExvY2FsQWN0aXZpdHkpCisgICAgICAgIG1faXNSZW1vdGVF
bGlnaWJsZUZvckdDID0gdHJ1ZTsKKworICAgIGlmIChoYXNBY3Rpdml0eSA9PSBNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6OlllcykKKyAgICAgICAgbV9pc1JlbW90ZUVs
aWdpYmxlRm9yR0MgPSBmYWxzZTsKKworICAgIG1faXNBc2tpbmdSZW1vdGVBYm91dEdDID0gZmFs
c2U7Cit9CisKIGJvb2wgTWVzc2FnZVBvcnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7
CiAgICAgbV9taWdodEJlRWxpZ2libGVGb3JHQyA9IHRydWU7CkBAIC0zMDMsMzIgKzMyNCwyMyBA
QCBib29sIE1lc3NhZ2VQb3J0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogCiAgICAgLy8g
SWYgd2UncmUgbm90IGluIHRoZSBtaWRkbGUgb2YgYXNraW5nIHRoZSByZW1vdGUgcG9ydCBhYm91
dCBjb2xsZWN0YWJpbGl0eSwgZG8gc28gbm93LgogICAgIGlmICghbV9pc0Fza2luZ1JlbW90ZUFi
b3V0R0MpIHsKLSAgICAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigp
LmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KG1fcmVtb3RlSWRlbnRpZmllciwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6
Okhhc0FjdGl2aXR5IGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGF1dG8gaW5u
ZXJIYW5kbGVyID0gW3RoaXMsIG90aGVyUHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVk
VGhpcyldKE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0
eSkgewotICAgICAgICAgICAgICAgIGJvb2wgaGFzSGFkTG9jYWxBY3Rpdml0eSA9IG1faGFzSGFk
TG9jYWxBY3Rpdml0eVNpbmNlTGFzdENoZWNrOwotICAgICAgICAgICAgICAgIG1faGFzSGFkTG9j
YWxBY3Rpdml0eVNpbmNlTGFzdENoZWNrID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICBpZiAo
aGFzQWN0aXZpdHkgPT0gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpO
byAmJiAhaGFzSGFkTG9jYWxBY3Rpdml0eSkKLSAgICAgICAgICAgICAgICAgICAgbV9pc1JlbW90
ZUVsaWdpYmxlRm9yR0MgPSB0cnVlOwotCi0gICAgICAgICAgICAgICAgaWYgKGhhc0FjdGl2aXR5
ID09IE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eTo6WWVzKQotICAgICAg
ICAgICAgICAgICAgICBtX2lzUmVtb3RlRWxpZ2libGVGb3JHQyA9IGZhbHNlOworICAgICAgICBS
ZWZQdHI8V29ya2VyVGhyZWFkPiB3b3JrZXJUaHJlYWQ7CisgICAgICAgIGlmIChpczxXb3JrZXJH
bG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCisgICAgICAgICAgICB3b3Jr
ZXJUaHJlYWQgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpLnRocmVhZCgpOwogCi0gICAgICAgICAgICAgICAgbV9pc0Fza2luZ1JlbW90ZUFi
b3V0R0MgPSBmYWxzZTsKLSAgICAgICAgICAgIH07CisgICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jaGVja1JlbW90ZVBvcnRGb3JBY3Rpdml0eShtX3JlbW90
ZUlkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKGNvbnN0X2Nhc3Q8TWVzc2FnZVBv
cnQqPih0aGlzKSksIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5IGhhc0FjdGl2aXR5KSBtdXRhYmxlIHsK
IAotCi0gICAgICAgICAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmlzQ29udGV4dFRocmVhZCgpKSB7Ci0gICAgICAgICAgICAgICAgaW5uZXJIYW5kbGVyKGhh
c0FjdGl2aXR5KTsKKyAgICAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAg
ICAgICBpZiAoIXdvcmtlclRocmVhZCkgeworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykK
KyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUFjdGl2aXR5KGhhc0FjdGl2aXR5
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soW2lubmVySGFuZGxlciA9IFdURk1v
dmUoaW5uZXJIYW5kbGVyKSwgaGFzQWN0aXZpdHldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpbm5lckhhbmRsZXIoaGFzQWN0aXZpdHkpOwotICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGhhc0FjdGl2aXR5XShhdXRv
JikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAg
ICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlQWN0aXZpdHkoaGFzQWN0aXZpdHkpOworICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgICAgIH0pOwogICAgICAg
ICBtX2lzQXNraW5nUmVtb3RlQWJvdXRHQyA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2Fn
ZVBvcnQuaAppbmRleCAzNTg4Zjk0OWQ4YjlmMzc3YTQxZDY2MjA5NmVlNDAxNDFhZTYyZDcyLi44
NTE0MTk1MGYwMzMxMDAyYWE5NTUxZTMwYWE4MmRhZmU5NDljM2Q3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZVBvcnQuaApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Q2hhbm5l
bC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzLmgiCisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwpA
QCAtNDgsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZXNzYWdlUG9ydD4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IGxvY2FsLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIHJlbW90ZSk7CiAgICAgdmlydHVh
bCB+TWVzc2FnZVBvcnQoKTsKIAorICAgIGF1dG8mIHdlYWtQdHJGYWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV93ZWFrRmFjdG9yeTsgfQorCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3Nh
Z2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ry
b25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKIAogICAgIHZvaWQgc3RhcnQoKTsKQEAgLTEwNiwxMCAr
MTEwLDE0IEBAIHByaXZhdGU6CiAgICAgLy8gQSBwb3J0IHN0YXJ0cyBvdXQgaXRzIGxpZmUgZW50
YW5nbGVkLCBhbmQgcmVtYWlucyBlbnRhbmdsZWQgdW50aWwgaXQgaXMgY2xvc2VkIG9yIGlzIGNs
b25lZC4KICAgICBib29sIGlzRW50YW5nbGVkKCkgY29uc3QgeyByZXR1cm4gIW1fY2xvc2VkICYm
IG1fZW50YW5nbGVkOyB9CiAKKyAgICB2b2lkIHVwZGF0ZUFjdGl2aXR5KE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk7CisKICAgICBib29sIG1fc3RhcnRlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2Nsb3NlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VudGFuZ2xlZCB7
IHRydWUgfTsKIAorICAgIFdlYWtQdHJGYWN0b3J5PE1lc3NhZ2VQb3J0PiBtX3dlYWtGYWN0b3J5
OworCiAgICAgLy8gRmxhZ3MgdG8gbWFuYWdlIHF1ZXJ5aW5nIHRoZSByZW1vdGUgcG9ydCBmb3Ig
R0MgcHVycG9zZXMKICAgICBtdXRhYmxlIGJvb2wgbV9taWdodEJlRWxpZ2libGVGb3JHQyB7IGZh
bHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1faGFzSGFkTG9jYWxBY3Rpdml0eVNpbmNlTGFzdENo
ZWNrIHsgZmFsc2UgfTsKQEAgLTEyMSw2ICsxMjksMTAgQEAgcHJpdmF0ZToKICAgICBNZXNzYWdl
UG9ydElkZW50aWZpZXIgbV9yZW1vdGVJZGVudGlmaWVyOwogCiAgICAgbXV0YWJsZSBzdGQ6OmF0
b21pYzx1bnNpZ25lZD4gbV9yZWZDb3VudCB7IDEgfTsKKworI2lmICFBU1NFUlRfRElTQUJMRUQK
KyAgICBSZWY8VGhyZWFkPiBtX2NyZWF0aW9uVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50KCkgfTsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIyNjhkYTU0ODZh
YTFhNDcyODBiNDU4ODEyNjM0OWMxODljMDJhZWUuLjE2NGQxMTQ4YWIwZmRmYWZhZDAyYjM3YzJm
NjcxNzQ1NWEzYjFmNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wMy0xNCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVzc2FnZVBvcnQgaXMgbm90
IGFsd2F5cyBkZXN0cm95ZWQgb24gdGhlIHJpZ2h0IHRocmVhZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNjE5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zODIwNDcxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAg
ICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3dv
cmtlci1tZXNzYWdlcG9ydC0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWw6IEFkZGVkLgorCiAyMDE4LTAz
LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXNzYWdl
UG9ydCBzaG91bGQgcmVtb3ZlIGl0cyBsaXN0ZW5lcnMgd2hlbiBiZWluZyBjbG9zZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDQ1NTRjNTNmMzY4YzViZDJjMWM3ODBkZmRiMmY0OGM5YjM4N2Q3OWIu
LjgyMzFkODQzMzM5NDhkOTUwOTFhZDQ0NWE5NjdkODgzNmM4YzE3NjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjA2LDYgKzIwNiw4IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkCiAjIFJlZW5h
YmxlIGl0IHdoZW4gaGF2aW5nIGEgY3VzdG9tIGdjIGV4cG9zZWQgaW4gc2VydmljZSB3b3JrZXJz
LgogWyBEZWJ1ZyBdIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaEV2ZW50Lmh0dHBzLmh0
bWwgWyBTa2lwIF0KIAorWyBEZWJ1ZyBdIGh0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2Fn
ZXBvcnQtMi5odG1sIFsgU2xvdyBdCisKICMgU2tpcCB3b3JrZXJzIHRlc3RzIHRoYXQgYXJlIHRp
bWluZyBvdXQgb3IgYXJlIFNoYXJlZFdvcmtlciByZWxhdGVkIG9ubHkKIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2lu
Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9k
YXRhLXVybC1zaGFyZWQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy93b3JrZXIt
bWVzc2FnZXBvcnQtMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0LTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYzA4MWUxZmZlNTdjMzNjNTIzYzRkYjRiOGQzMmIxMWU1MjRkNWJl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtl
ci1tZXNzYWdlcG9ydC0yLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPGh0bWw+Cis8Ym9keT4KKzxw
PlRlc3QgcG9zdE1lc3NhZ2UgYW5kIGdhcmJhZ2UgY29sbGVjdGlvbi48L3A+Cis8ZGl2IGlkPXJl
c3VsdD48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30K
KwordmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9tZXNzYWdlcG9ydC1lY2hvLXdv
cmtlci5qcycpOworCit3b3JrZXIub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2
ZW50LmRhdGEgIT09ICJyZWFkeSIpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwg
PSAiRkFJTCI7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHdvcmtl
ci50ZXJtaW5hdGUoKTsKKworICAgIGZ1bmN0aW9uIGdjUmVjKG4pIHsKKyAgICAgICAgaWYgKG4g
PCAxKQorICAgICAgICAgICAgcmV0dXJuIHt9OworICAgICAgICB2YXIgdGVtcCA9IHtpOiAiYWIi
ICsgaSArIChpIC8gMTAwMDAwKX07CisgICAgICAgIHRlbXAgKz0gImZvbyI7CisgICAgICAgIGdj
UmVjKG4tMSk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspCisg
ICAgICAgIGdjUmVjKDEwKTsKKworICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBkb2N1
bWVudC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9
CisKK3ZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CitjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IChldmVudCkgPT4geyAgfTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiSGVyZSBpcyB5
b3VyIHBvcnQiLCBbY2hhbm5lbC5wb3J0Ml0pOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>